标签:java 异常 196 NullPointerException Throwable Java proc throw
2. throw
到目前为止,我们只是获取了被Java运行时系统引发的异常。然而,我们还可以用throw
语句抛出明确的异常。Throw
的语法形式如下:
throw ThrowableInstance;
这里的ThrowableInstance一定是Throwable
类类型或者Throwable
子类类型的一个对象。简单的数据类型,例如int
,char
,以及非Throwable
类,例如String
或Object
,不能用作异常。有两种方法可以获取Throwable
对象:在catch
子句中使用参数或者使用new
操作符创建。
程序执行完throw
语句之后立即停止;throw
后面的任何语句不被执行,最邻近的try
块用来检查它是否含有一个与异常类型匹配的catch
语句。如果发现了匹配的块,控制转向该语句;如果没有发现,次包围的try
块来检查,以此类推。如果没有发现匹配的catch
块,默认异常处理程序中断程序的执行并且打印堆栈轨迹。
例如:
class TestThrow{
static void proc(){
try{
throw new NullPointerException("demo");
}catch(NullPointerException e){
System.out.println("Caught inside proc");
throw e;
}
}
public static void main(String [] args){
try{
proc();
}catch(NullPointerException e){
System.out.println("Recaught: "+e);
}
}
}
结果:
D:\java>java TestThrow Caught inside proc Recaught: java.lang.NullPointerException: demo
该程序两次处理相同的错误,首先,main()
方法设立了一个异常关系然后调用proc()。proc()方法设立了另一个异常处理关系并且立即抛出一个NullPointerException
实例,NullPointerException
在main()
中被再次捕获。
该程序阐述了怎样创建Java的标准异常对象,特别注意这一行:
1 |
|
此处
new
用来构造一个NullPointerException
实例,所有的Java内置的运行时异常有两个构造方法:一个没有参数,一个带有一个字符串参数。当用第二种形式时,参数指定描述异常的字符串。如果对象用作print()
或者println()
的参数时,该字符串被显示。这同样可以通过调用getMessage()来实现,getMessage()是由Throwable
定义的。
标签:java,异常,196,NullPointerException,Throwable,Java,proc,throw 来源: https://blog.csdn.net/Limingmingaa/article/details/121474398
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。