gpt4 book ai didi

Java 未处理的异常

转载 作者:行者123 更新时间:2023-12-02 04:01:58 25 4
gpt4 key购买 nike

我目前正在使用 Android Studio 开发 Android 应用程序,但遇到了一个我无法理解的错误。这是我的代码示例:

public class MyClass {

public void method1() throws MyException {
methodIO(); // Unhandled Exception: java.io.IOException
methodRun(); // OK
}

public void method2() throws Exception {
methodIO(); // OK
methodRun(); // OK
}

public void methodIO() throws IOException {}

public void methodRun() throws RuntimeException {}
}

class MyException extends Exception {

public MyException(){super();}

public MyException(String message, int errorCode) {
super(message);
}
}

我不明白为什么在 method1() 中,出现以下错误“未处理的异常:java.io.IOException”,而 method2() 编译正常。即使两个类都是从 Exception 继承的,抛出 RuntimeException 的方法也不会出现此问题。有人知道这里发生了什么事吗?

Ps:我想避免使用 try/catch block 或添加新的 throws 子句

最佳答案

MyException 不会扩展 IOException,因此当前不会处理 methodIO 抛出的 IOException

它在method2中工作,因为ExceptionIOExceptionMyException的公共(public)父类(super class),所以它指定了如何两种类型的异常都应该被处理。

将其添加到method1throws子句中:

public void method1() throws MyException, IOException {

或者在方法体中捕获:

public void method1() throws MyException {
try {
methodIO();
} catch (IOException e) {
// Handle appropriately.
}
}

关于Java 未处理的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34793423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com