忘记处理异常是逻辑/运行时错误还是非错误



例如,通过BufferedReader从终端读取行,而不处理错误

BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
try{            
String input = input.readLine();
}
catch(Exception e){
// Do Noting
}

不处理IOException是错误吗?如果是错误,是逻辑错误还是运行时错误?为什么?

从评论中的澄清来看,它是:

  1. 语言错误

String input屏蔽了对BufferedReader input的访问,但这可能只是这个发布中的一个错误

  1. 几个逻辑错误

错误是(1(由于变量超出范围,在成功输入的情况下无法执行任何操作,(2(缺乏对用户无效输入的反馈,以及(3(可能由于错误而缺乏可见的重试程序中止,我想其中之一应该发生,以及(4(当从描述中它可能应该只处理IOException时,可能会悄悄地吃掉所有Exception,以及(5(没有实现用于拒绝整数的代码,正如要求所说的那样——数字也是字符。

  1. 运行时错误

readline读取行失败是在运行时发生的事件,在任何给定的执行中都可能发生,也可能不发生。


换句话说,逻辑错误是未能充分预测和处理可能的运行时错误。

相关内容

  • 没有找到相关文章

最新更新