- 关 键 词:
- java编程
一、内层方法抛出异常,外层方法捕捉并处理异常:
public void methodA (){
try{
// 调用methodB
methodB();
}
catch(ExceptionType et){
// 相应处理措施
}
}
public void methodB throws ExceptionType{
if (condition is true)
{
// 相应处理措施
}
else
{
throw new ExceptionType(argument);
}
}
在这个例子中,方法B的头部中声明了该方法会抛出一个类型为ExceptionType的异常,在方法体中使用throw子句抛出了一个异常,那么该异常被谁捕捉到呢,答案是方法A.因为异常抛出后,JVM会顺着该方法的调用栈一层一层的往上找。因为方法A中有一个catch(ExceptionType et),所以被抛出的异常会被捕捉到并处理。
二、方法中自己捕捉,处理异常:
public methodA() {
try
{
// 可能产生异常的语句
}
catch (ExceptionType et)
{
// 相应的处理
}
}
在这个例子中,方法A使用了try-catch语句块,那么意味着在方法中所产生的ExceptionType类型的异常都会被捕捉到并在方法内处理。
三、内层方法抛出一个异常,但本身又有try-catch
public methodB() throws ExceptionType{
try
{
// 可能产生异常的语句
}
catch (AnotherExceptionType aet)
{
// 相应处理措施
}
}
在这个例子中有两种异常处理情况,抛出异常和捕捉异常,如果在try语句块中产生ExceptionType类型的异常的话,会被抛出。如果产生AnotherExceptionType类型的话,则不会被抛出,因为在方法B的头部中并没有声明会抛出该异常。
四、内层方法抛出一个异常,但本身有try-finally
public methodB() throws ExceptionType{
try
{
// 可能产生异常的语句
}
finally
{
// 一定要执行的语句
}
}
相关专题
- Java环境安装配置 (5767篇文章)
- 数据库处理专题 (8931篇文章)
- Java编程开发手册 (8443篇文章)
- Java的类 (897篇文章)
- JAVA网络 (477篇文章)
- Java应用开发篇 (1112篇文章)
- Java远程通讯可选技术及原理 (145次浏览)
- Java基础知识:初学者必须理解的六大问题 (76次浏览)
- 九个非常值得一看的MySpace程序 (72次浏览)
- Java初学者必须理解的六个大问题 (70次浏览)
- 微软企业级平台呼之欲出 英雄由“此”诞生 (66次浏览)
- Java基础知识:谈谈简单Hibernate入门 (58次浏览)
- Eclipse开发经典教程:SWT事件 (50次浏览)
- struts验证框架开发详解 (48次浏览)
- Java入门-浅析Java学习从入门到精通 (47次浏览)
- 关于提高自己水平的十大技术 (47次浏览)



