исключения в программе

#android

#Android

Вопрос:

Я попытался выполнить следующий фрагмент кода.Если я ввожу имена сайтов с http [например: http://www.google.com ], я получаю правильный вывод.В противном случае я получаю принудительное закрытие. Даже если я улавливаю activitynotfoundexception, тогда я также получаю ActivityNotFoundException .

Помогите мне.

 try {
    Button browse=(Button)findViewById(R.id.Browse);
    browseURl=(EditText)findViewById(R.id.BrowseUrl);
    browse.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            Intent invokeURI=new Intent(Intent.ACTION_VIEW,Uri.parse(browseURl.getText().toString()));
            startActivity(invokeURI);
        }
    });
} catch (ActivityNotFoundException ex) {
    // TODO: handle exception

    Log.e("BrowseURI","Failed Browsing the given URI",ex);
}
  

Комментарии:

1. Проверьте журналы, чтобы увидеть, какое исключение оно выдает. Может быть что-то вроде URISyntaxException.

Ответ №1:

Вам нужно перехватить исключение в вашем событии onClick, потому что вы получаете исключение после нажатия, а не при подключении обработчика события.

     @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        Intent invokeURI=new Intent(Intent.ACTION_VIEW,Uri.parse(browseURl.getText().toString()));
        try {
            startActivity(invokeURI);
        }
        catch (ActivityNotFoundException ex) {
            Log.e("BrowseURI","Failed Browsing the given URI",ex);
        }
    }
  

Комментарии:

1. @Scottie..thanks….So где я должен разместить блок try-catch ….. можете ли вы, пожалуйста, объяснить это …. я не понял вашу точку зрения…..

2. try {startActivity(invokeURI);} catch (ActivityNotFoundException ex) { Log.e(...); }

3. @Scottie …. большое спасибо ….. приятно познакомиться …. мне нужна от вас еще одна помощь … можете ли вы предложить мне хорошую книгу для изучения базового и продвинутого Android…

4. Рад, что это помогло вам! Не могли бы вы отметить этот вопрос как ответивший? Что касается книг, то Pro Android 2 в сочетании с самой документацией Android SDK — это хорошая комбинация для начала. Приветствия