如何解决忘记处理异常是逻辑/运行时错误还是不是错误
例如,通过BufferedReader
从终端读取行而不处理错误
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
try{
String input = input.readLine();
}
catch(Exception e){
// Do Noting
}
不是将IOException处理为错误吗?如果是错误,是逻辑错误还是运行时错误?为什么?
解决方法
根据评论中的澄清,为:
- 语言错误
String input
会屏蔽对BufferedReader input
的访问-但这可能只是此发布中的错误
和
- 几个逻辑错误
错误是:(1)由于变量超出范围,不可能通过成功的输入执行任何操作;(2)缺乏对用户有关无效输入的反馈,以及(3)缺乏可见的重试或程序由于错误而中止,我猜应该会发生其中之一,并且可能(4)从描述中安静地吞噬所有Exception,而它可能只应处理IOException;以及(5)正如要求所要求的那样,没有实现拒绝整数的代码-数字也是字符。
和
- 运行时错误
readline
无法读取行是在运行时发生的事件,在任何给定执行中可能会或可能不会发生。
换句话说,逻辑错误是无法充分预期和处理可能的运行时错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。