今天忽然对异常有了兴趣,运行了一个很简单的程序,发现了一个我一直以来忽略的问题,虽然它针对于这题没什么意义,不过很关键,若是在用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)