gpt4 book ai didi

java - 异常已在此编译单元中定义 import java.lang.Exception;

转载 作者:行者123 更新时间:2023-12-01 19:43:17 27 4
gpt4 key购买 nike

尝试创建自定义异常并扩展 Exception 类,这会导致错误

错误:此编译单元中已定义异常

如果去掉 import 语句 --> import java.lang.Exception

然后下面出现一组新的错误

--------------------配置:--------------------

E:\ArjunJava\Exception.java:29: 错误:不兼容的类型:MyException 无法转换为 Throwable

throw new MyException("Array size is less than what you are referencing");
^

E:\ArjunJava\Exception.java:35: 错误:不兼容的类型:MyException 无法转换为 Throwable

    catch(MyException me)
^

E:\ArjunJava\Exception.java:37: 错误:找不到符号

System.out.println("Exception caught "+me.getMessage()); 
symbol: method getMessage() location: variable me of type MyException

E:\ArjunJava\Exception.java:15: 错误:Exception 类中的构造函数 Exception 无法应用于给定类型;

super(message);
^
required: no arguments
found: String
reason: actual and formal argument lists differ in length

4 个错误

流程已完成。

import java.lang.Exception;

class MyException extends Exception {
MyException(String message) {
super(message);
}
}

public class Exception {
public static void main (String[] args) {
// array of size 4.
int[] arr = new int[4];//Referring 5th Element
try {
int i = arr[4]; // this statement causes an exception
throw new MyException("Referring to element more than Array size");
}
catch(MyException me) {
System.out.println("Exception caught : "+me.getMessage());
}
}
}

输出:

捕获异常:引用超过数组大小的元素

最佳答案

代码的问题在于您在类 Exception 中定义了 main(),该类已被 Java 使用并默认导入。将类的名称从 Exception 更改为其他名称,您的代码应该可以正常工作。解决问题的另一种方法是,如果您不想更改类的名称,则可以使用 Exception 的完全限定名称,如下所示:

class MyException extends java.lang.Exception {

}

同样,您不需要显式地拥有导入语句

关于java - 异常已在此编译单元中定义 import java.lang.Exception;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54565937/

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