问题描述
|
我正在做一个用于在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
解决方法
在代码中使用1ѭ块,就像
`try{
} catch{
} finally{
}`
即使您的try块抛出异常,即使没有,异常也会最终执行。
,如果在try-catch块之间发生错误:
您在这里仅捕获2个异常(NullPointerException和IOException)。
try-catch块之间的任何其他运行时异常仍可能导致程序崩溃。 catch java.lang.Throwable以确保捕获了所有异常。
如果在try-catch块之间未发生错误:
在stacktrace中查找类中发生错误的行,然后在其中实现\“ proper \”错误处理。
如果您的应用程序崩溃,您将始终在logcat中看到堆栈跟踪。该堆栈跟踪将能够告诉您导致崩溃的代码行。