Tag: 未检查

本地变量可能尚未初始化 – 检测方法中未经检查的exception抛出

我有一些这种结构的代码: public void method() { Object o; try { o = new Object(); } catch (Exception e) { //Processing, several lines throw new Error(); //Our own unchecked exception } doSomething(o); } 我有很多方法,我在catch块中有相同的代码,所以我想将它提取到一个方法,以便我可以保存一些行。 我的问题是,如果我这样做,我得到一个编译器错误“局部变量o可能没有被初始化”。 public void method() { Object o; try { o = new Object(); } catch (Exception e) { handleError(); } //doSomething(o); compiler error […]

Java未选中/已检查exception澄清

我一直在阅读关于未经检查和已检查的问题,没有一个在线资源真正清楚这些差异以及何时使用这两者。 根据我的理解,它们都会在运行时抛出,它们都代表超出逻辑预期范围的程序状态,但必须明确捕获已检查的exception,而未经检查的exception则不会。 我的问题是,假设为了论证我有一个方法来划分两个数字 double divide(double numerator, double denominator) { return numerator / denominator; } 以及需要在某处使用divison的方法 void foo() { double a = divide(b, c); } 谁负责检查分母为零的情况,是否应该检查或取消检查exception(忽略Java内置的分区检查)? 那么,除法方法是否被声明为或 double divide(double numerator, double denominator) throws DivideByZeroException { if(denominator == 0) throw DivideByZeroException else … } void foo() { try{ double a = divide(b, c); } catch(DivideByZeroException e) {} […]