java - 为什么算术异常是未经检查的异常?
问题描述
有人可以解释为什么算术异常属于未经检查的异常类别吗?我已经搜索过,但没有正确的答案可用。如果有人能回答,将不胜感激。
解决方案
ArithmeticException
extends RunttimeException
,因此未选中。
为什么这个设计决定?如果ArithmeticException
选中,那么您将必须封装每个 (!) 整数除法try catch
或将 a 添加throws
到周围的方法中。
以下程序无法编译:
class MyClass {
int i = 10;
void myMethod() {
int j = 1 / i;
// do something with j
}
}
你必须写要么
void myMethod() throws ArithmeticException {
int j = 1 / i;
// do something with j
}
或者
void myMethod() {
int j;
try {
j = 1 / i;
} catch (ArithmeticException e) {
j = ...; // what value should be used?
}
// do something with j
}
至少对我来说,那会很烦人。
推荐阅读
- php - 仅来自产品的总计,不包括 woocommerce 上的运费
- python - 将字典或变量连接到字符串
- sql - 选择 LEFT 与 SUBSTR
- scala - Akka:演员没有发送响应
- python - Pinax-referrals,如何从生成的推荐链接中删除域名并将其连接到视图
- python - 尝试在 linux 中将 pyinstaller 可执行文件作为服务运行时出现编码错误
- raku - 在 Raku 中一步使用变量并为其分配表达式
- php - PHP从一个函数返回两个值
- google-apps-script - 最后大括号 → } 变为红色而不是绿色,但脚本正常工作(Google App Script)
- sqlite - 使用外键在一个查询中删除多个表