
3个回答
推荐于2017-10-01 · 知道合伙人数码行家
关注

展开全部
您好,提问者:
一种是内部处理不需要外界通知的异常。
一种是内部不想处理而抛给外界处理的异常。
例如:
1、 操作数据库时发生的异常,这个就不能抛,因为操作数据库的人不会处理异常。
2、操作数据库时用户可能发生的异常,比如传值错误,这个时候可以抛出一个异常。
public void delete(int id){
try{
xxx;
}catch(SQLException e){
throw new SQLException("删除失败,ID不存在!");
}
}
交给JVM捕捉处理的语句是throws Exception,说白了就是抛到最后还没有碰到try就真的抛给JVM了。
展开全部
这个原则就是你的程序需要处理的,或者要告知用户的处理做成前者,其它的就处理交给JVM捕获。
追问
交给JVM捕获处理的语句是什么。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
JVM 丢出来的 exceptions 基本上是很底层的异常, 即是超出了你作为一个程序员能控制的范围, 例如ArrayIndexOutOfBoundsException, ClassCastException, NullPointerException, StackOverflowError, NoClassDefFoundError... 这些是你无法预计的, 你也很难自行修复的.
而如果你能预先知道的, 由你自己决定的, 就是为之 "程序本身捕获并处理异常", 例如: IllegalArgumentException, IllegalStateException, NumberFormatException, AssertionError, 这种异常的环境下, 你还是可以与使用者重新互动(或者重序自行修复), 而有机会重新回到程序主体的
而如果你能预先知道的, 由你自己决定的, 就是为之 "程序本身捕获并处理异常", 例如: IllegalArgumentException, IllegalStateException, NumberFormatException, AssertionError, 这种异常的环境下, 你还是可以与使用者重新互动(或者重序自行修复), 而有机会重新回到程序主体的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询