我正在做一个在Android中查找BPM的应用程序。基于文件输入的空指针异常和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
答案 0 :(得分:1)
这里只捕获2个异常(NullPointerException和IOException)。 try-catch块之间的任何其他运行时异常仍然可能导致程序崩溃。 catch java.lang.Throwable以确保捕获所有异常。
在stacktrace中查找发生错误的类中的行,并在那里实现“正确”的错误处理。
如果您的应用程序崩溃,您将始终在logcat中看到堆栈跟踪。该堆栈跟踪将能够告诉您导致崩溃的代码行。
答案 1 :(得分:-3)
在代码中使用finally
块,就像
`try{
} catch{
} finally{
}`
即使你的try块抛出异常,或者即使它没有抛出异常,也会执行。