Я делаю приложение для поиска BPM в Android. Исходя из ввода исключения нулевого указателя файла и исключения IO. Когда возникает исключение, программа завершается, даже если я окружаю код блоком try/catch. Мое требование состоит в том, что программа не заканчивается и продолжается до других частей.
Мой код:
try {
mp3file.seekMP3Frame();
sourcefile = new File("/sdcard/a.mp3");
mp3file = new MP3File(sourcefile);
AbstractID3v2 tag = mp3file.getID3v2Tag();
text=tag.getFrame("TBPM").toString();
}
catch (NullPointerException e) {
System.out.println("null pointer exception");
}
catch (IOException e1) {
System.out.println("IO exception");
}
........ // other coding
Используйте finally
блок в своем коде, который похож на
`try{
} catch{
} finally{
}`
наконец, выполнится, даже если ваш блок try вызывает исключение или даже если это не так.
Вы получаете только 2 исключения (NullPointerException и IOException). Любое другое исключение времени выполнения между блоком try-catch все равно может привести к сбою вашей программы. catch java.lang.Throwable, чтобы обеспечить исключение всех исключений.
Посмотрите в stacktrace для строки в вашем классе, где возникает ошибка, и реализуйте там "правильную" обработку ошибок.
Если ваше приложение выйдет из строя, вы всегда увидите стек в логарифме. Эта команда stacktrace сможет рассказать вам, какая строка кода вызывает сбой.