今天忽然對異常有了興趣,運行了一個很簡單的程序,發現了一個我一直以來忽略的問題,雖然它針對於這題沒什麼意義,不過很關鍵,若是在用jdbc,io等這些東西的時候沒搞清楚這些,後果很可怕。java
下面來針對程序說說我爲何錯的概念,不爲別的,就爲了給本身提個醒。.net
package com.zhao.practice801; /** * 異常的基本研究 * @author Administrator * */ public class TestException { public static void main(String[] args) { String str = null; //取得字符串長度 int length = 0; try{ length = str.length(); System.out.println(); }catch(Exception e){ e.printStackTrace(); } System.out.println("程序退出"); } }
一直覺得出現異常就不會再執行後面的語句,發現錯了,它只是一個方法體,並不會把方法體以外的代碼給覆蓋掉。這是程序的結果。code
程序退出 java.lang.NullPointerException at com.zhao.practice801.TestException.main(TestException.java:13)