Java Exception系列一:关于throws和throw
2011-04-01 20:56
302 查看
throws
异常说明,表示某方法可能
会抛出异常,用于某个方法后,后面接潜在的异常列表,如void func() throws
AException,BException {//...。
1).假设有方法void a() throws AException{},则这个方法不会抛出由AException或他的子类产生的异常,因为即使有也被显示
的用关键字throws抛出来了。有方法main()调用a(),则在方法main()中,要么捕获(snippet1.1),要么继续throws抛出
(snippet1.2)。
//snippet1.1
public class ThrowsExceptionCatch {
public static void main(String[] args){
try{
a();
}catch(SQLException se){
System.out.println("Dispose SQLException.");
}
}
static void a() throws SQLException{
System.out.println("throws SQLException.");
}
}
//snippet1.2
public class ThrowsException {
public static void main(String[] args) throws SQLException{
a(); //not catch due to above "throws SQLException"
}
static void a() throws SQLException{
System.out.println("throws SQLException.");
}
}
2).对于void a() {},不管a()方法内部有无可能产生AException,都可以在方法后面声明throws AException,类似于servlet中
的doGet/doPost方法,不论有没有在doGet/doPost方法内部产生servletException,在Eclipse中,servlet的代码生成模板默认
会throws servletException,为什么要这么做呢,个人感觉这个某种设计模式有关系,有利于结耦。值得注意的是,不论方法a
()内部是否产生AException,一旦声明throws AException,a()方法的调用者要么捕获,要么继续抛出,snippet1.1和1.2已作说
明。
throw
,表示产生了异常,只能用于方法内部,用法为"throw 异常对象",如void func() { throw new AException(); }。也可
以和异常声明同时使用。对于throw,一部分Exception需要catch,不然编译错误,具体请参阅Java Exception系列二
。
throws和throw主要区别:
一 用法,前者a() throws AException,BException{//...;后者a(){throw new AException();}。
二 意义,前者表明可能会抛出某种异常;后者表示产生了异常。
三 处理,前者a()被b()调用,b()要么捕获,要么继续抛出;后者产生的异常中,某些异常必须在a()内部捕获,某些可以不用。
如若转载,请说明出处!http://blog.csdn.net/xukunddp
异常说明,表示某方法可能
会抛出异常,用于某个方法后,后面接潜在的异常列表,如void func() throws
AException,BException {//...。
1).假设有方法void a() throws AException{},则这个方法不会抛出由AException或他的子类产生的异常,因为即使有也被显示
的用关键字throws抛出来了。有方法main()调用a(),则在方法main()中,要么捕获(snippet1.1),要么继续throws抛出
(snippet1.2)。
//snippet1.1
public class ThrowsExceptionCatch {
public static void main(String[] args){
try{
a();
}catch(SQLException se){
System.out.println("Dispose SQLException.");
}
}
static void a() throws SQLException{
System.out.println("throws SQLException.");
}
}
//snippet1.2
public class ThrowsException {
public static void main(String[] args) throws SQLException{
a(); //not catch due to above "throws SQLException"
}
static void a() throws SQLException{
System.out.println("throws SQLException.");
}
}
2).对于void a() {},不管a()方法内部有无可能产生AException,都可以在方法后面声明throws AException,类似于servlet中
的doGet/doPost方法,不论有没有在doGet/doPost方法内部产生servletException,在Eclipse中,servlet的代码生成模板默认
会throws servletException,为什么要这么做呢,个人感觉这个某种设计模式有关系,有利于结耦。值得注意的是,不论方法a
()内部是否产生AException,一旦声明throws AException,a()方法的调用者要么捕获,要么继续抛出,snippet1.1和1.2已作说
明。
throw
,表示产生了异常,只能用于方法内部,用法为"throw 异常对象",如void func() { throw new AException(); }。也可
以和异常声明同时使用。对于throw,一部分Exception需要catch,不然编译错误,具体请参阅Java Exception系列二
。
throws和throw主要区别:
一 用法,前者a() throws AException,BException{//...;后者a(){throw new AException();}。
二 意义,前者表明可能会抛出某种异常;后者表示产生了异常。
三 处理,前者a()被b()调用,b()要么捕获,要么继续抛出;后者产生的异常中,某些异常必须在a()内部捕获,某些可以不用。
如若转载,请说明出处!http://blog.csdn.net/xukunddp
相关文章推荐
- [Java]关于throw,throws,try{}catch(){}
- 关于java异常处理的几个关键字 try catch/throw/throws
- J2SE基础夯实系列之throws还有throw的区别
- 关于java异常中的throws和throw的区别
- 【转】关于java异常中的throws和throw的区别
- J2SE基础夯实系列之throws还有throw的区别
- [Java]关于throw,throws,try{}catch(){}
- 菜鸟学Java第四天 关于Exception,throws,throw,try ,catch
- 关于throws和throw和try{}catch(){}的区别和联系
- 关于java里面throw和throws的区别
- [Java]关于throw,throws,try{}catch(){}
- 关于throw异常后方法名后是否要throws
- 关于java异常处理的几个关键字 try catch/throw/throws
- 关于java异常处理的几个关键字 try catch/throw/throws
- Java基础系列--throw、throws关键字
- java学习笔记1-关于throw和throws的一点总结
- Java中throw和throws的区别
- 异常(三):使用throws声明抛出异常和使用throw抛出异常
- iOS指南系列:关于进度条的问题
- 关于打印系列之二