请教一些异常的问题 1:做项目时,在可能出现异常的地方用try catch捕捉, 还是在类后面throws异常??2:做项目时,在哪些地方应该要用try catch?不近捕捉可以吗?个人感觉:我写项目时没有注意异常方面,这样合理吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个方法下有多个可捕获异常,每个异常都捕获,然后再抛出此方法的处理异常。void method() throws MethodException { try { submethod1(); }catch(Submethod1Exception e) { throw new MethodException("cause by....Submethod1Exception"); }catch(Submethod1Exception2 e) { throw new MethodException("cause by....Submethod1Exception2"); } . . ...} try..catch主要是在你项目出错的时候不至于一下出现报错页面,但是会影响性能,throws是将捕获的异常再次抛出,可以使得你获得跟多的异常信息 1.个人感觉还是在每个方法中添加try catch比较好一些,在catch可以自己定义输出的一些语句(例如标注是哪个类中哪个方法下的异常)然后加上异常信息(e.getMessages()),这样查找错误的时候比较方便,一看输出的异常信息就能确定哪个方法出的错。2.还是个人感觉在具体操作(增删改查),或者变量类型转换的地方都添加上异常处理,这样即使有错误也能准确定位,正确处理。3.不注意异常处理肯定不是个好习惯,楼主还是慢慢尝试的添加异常处理吧,等你习惯了你会发现添加异常处理是多么的明智。 你有能力处理的错误就是用try catch处理掉,无法处理或者要交给后面处理的就抛出去,不要简单的打印一下堆栈信息就完了 顶,try catch确实对系统性能有所影响。不过一般不要求过于灵敏的系统用下还是可以的。 这个要看你具体情况了,比如如果你捕获到的是SessionException(自己定义的异常,没登陆或session过期时抛得异常),这个时候就应该捕获,然后转到登录页面。还有就是数据库异常,这个也应该要捕获,然后转为自己包装的异常类再往上抛,这个时候上一层的方法捕获到这个异常,然后就看你是要继续捕获再包装,还是直接往上抛,很多异常是不捕获的。 这个就要看你提供的方法的对异常处理有什么要求了如果你的方法,是希望别人调用的时候自己处理异常,那么就throws否则,就自己处理比如希望别人处理异常,用户需要保证一些条件才能让你的方法正常执行如果用户没有确保条件,你就抛出异常,结束处理void somemethod() throws SomeException { if (some_exception_occurs_then_method_can_not_continue) { throw new SomeException(you_must_insure_conditions_to_continue_the_method); }}自己处理异常用户即使不确保调用方法的条件,你也希望方法继续执行,哪怕不能得到用户期望的结果void somemethod() { try { //do something } catch (Exception e) { //you_can_do_something_here_to_handle_the_exception }} 如果在每一个方法里都加try catch的话,不影响性能吗?还有代码量也增加不少? 使用dom修改XML文件后,如何保证原有属性的顺序 请教excel报表导出之文本方式编辑excel 报表 xls csv xml 用java实现星座查询 在北京一个月1500够用不,可以活吧 axis实现web service,返回内容的标签可改变吗?急 通信信道的文件结束??????????????????在线等 各位大哥,小女有一个问题关于j2ee的MVC的 javaScript中的ifame中获取数据的问题 html:select让它显示数据库的内容,页面如何设置呀? 如何解决display tag的中文排序问题? java properties文件读取 AJAX动态结构树
void method() throws MethodException {
try {
submethod1();
}catch(Submethod1Exception e) {
throw new MethodException("cause by....Submethod1Exception");
}catch(Submethod1Exception2 e) {
throw new MethodException("cause by....Submethod1Exception2");
}
.
.
...
}
2.还是个人感觉在具体操作(增删改查),或者变量类型转换的地方都添加上异常处理,这样即使有错误也能准确定位,正确处理。
3.不注意异常处理肯定不是个好习惯,楼主还是慢慢尝试的添加异常处理吧,等你习惯了你会发现添加异常处理是多么的明智。
如果你的方法,是希望别人调用的时候自己处理异常,那么就throws
否则,就自己处理比如
希望别人处理异常,用户需要保证一些条件才能让你的方法正常执行
如果用户没有确保条件,你就抛出异常,结束处理
void somemethod() throws SomeException {
if (some_exception_occurs_then_method_can_not_continue) {
throw new SomeException(you_must_insure_conditions_to_continue_the_method);
}
}自己处理异常
用户即使不确保调用方法的条件,你也希望方法继续执行,哪怕不能得到用户期望的结果
void somemethod() {
try {
//do something
} catch (Exception e) {
//you_can_do_something_here_to_handle_the_exception
}
}