如何在java中发生异常时避免程序终止

时间:2011-05-23 05:31:01

标签: java android

我正在做一个在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 

2 个答案:

答案 0 :(得分:1)

  • 如果try-catch块之间发生错误:

这里只捕获2个异常(NullPointerException和IOException)。 try-catch块之间的任何其他运行时异常仍然可能导致程序崩溃。 catch java.lang.Throwable以确保捕获所有异常。

  • 如果try-catch块之间没有出现错误:

在stacktrace中查找发生错误的类中的行,并在那里实现“正确”的错误处理。

如果您的应用程序崩溃,您将始终在logcat中看到堆栈跟踪。该堆栈跟踪将能够告诉您导致崩溃的代码行。

答案 1 :(得分:-3)

在代码中使用finally块,就像

一样
 `try{

 } catch{

 } finally{

 }`

即使你的try块抛出异常,或者即使它没有抛出异常,也会执行。