通过编程无法避免的,用已检查异常异常处理。比如网络断开。如DataFormatException。
RuntimeException通过编程可以避免,要在编程时对出现的RuntimeException的情况判断。比如除数是0,数组越界等。
但现在还有比较流程用RuntimeException来替换掉所有有Exception。这种情况主要是为了代码更美观。在调用链上谁可以处理谁就可以捕。用RuntimeException封装Exception的两种方法,直接封装和用RuntimeException子类。详见:《java编程思想P280》
异常和方法返回值的选择,个人倾向于方法返回值。
如果发生程序不可继续执行的异常,先做日志,再抛出runtimeException,上层不处理,程序就会退出。
用时注意:在catch中的语句如果抛出异常的情况,如果在循环中进行try-catch,如果在catch中未catch,会造成退出循环。
} catch (Exception e) {
try {
LogUtil.error(LogUtil.ADDCONSUME, "addConsume error: " + threadId);
} catch (Exception ee) {
}
}
gradeResult = upGrade.upGradeWithSingleTask(orderTask);如果出现异常会接不到返回值,可以用方法传回返回值