标签:
1 // Demonstrate throw. 2 class ThrowDemo { 3 static void demoproc() { 4 try { 5 throw new NullPointerException("demo"); 6 } catch(NullPointerException e) { 7 System.out.println("Caught inside demoproc."); 8 throw e; // rethrow the exception 9 } 10 } 11 12 public static void main(String args[]) { 13 try { 14 demoproc(); 15 } catch(NullPointerException e) { 16 System.out.println("Recaught: " + e); 17 } 18 } 19 }
该程序有两个机会处理相同的错误。首先,main()设立了一个异常关系然后调用demoproc( )。 demoproc( )方法然后设立了另一个异常处理关系并且立即抛出一个新的NullPointerException实例,NullPointerException在下一行被捕获。异常于是被再次抛出。下面是输出结果:
1 Caught inside demoproc. 2 Recaught: java.lang.NullPointerException: demo
该程序还阐述了怎样创建Java的标准异常对象,特别注意下面这一行:
1 throw new NullPointerException("demo");
这里,new用来构造一个NullPointerException实例。所有的Java内置的运行时异常有两个构造函数:一个没有参数,一个带有一个字符串参数。当用到第二种形式时,参数指定描述异常的字符串。如果对象用作 print( )或println( )的参数时,该字符串被显示。这同样可以通过调用getMessage( )来实现,getMessage( )是由Throwable定义的。
标签:
原文地址:http://www.cnblogs.com/Coda/p/4470550.html