Java 自定义异常类引发编译时错误
我试图创建自己的异常,它扩展了exception类,但当我试图抛出它时,编译器抛出编译时错误 这是我的异常类:Java 自定义异常类引发编译时错误,java,exception,Java,Exception,我试图创建自己的异常,它扩展了exception类,但当我试图抛出它时,编译器抛出编译时错误 这是我的异常类: package Exception; public class notAdultException extends Exception { @Override public String toString() { return ("you are not adult"); } } 下面是我尝试抛出异常的地方: int Ag
package Exception;
public class notAdultException extends Exception {
@Override
public String toString() {
return ("you are not adult");
}
}
下面是我尝试抛出异常的地方:
int Age = 16;
try {
if (Age < 18) {
throw new notAdultException();
}
catch (notAdultException t) {
System.out.println(t);
}
问题是在同一个包中有一个名为
Exception
的类,因此您需要限定对java.lang.Exception
的访问
作为旁注,您应该始终遵循。例如,您的类的名称应该是notadutexception
,而不是notadutexception
,并且包的名称应该类似于my.exceptions
尝试以下操作:
public class notAdultException extends Exception {
public notAdultException(String message) {
super(message);
}
}
不要忘记导入java.lang.Exception(或使用上面提到的完整限定符)。您需要
扩展java.lang.Exception
。使用java编程约定,包使用完全小写字母。类以大写字母开头,并使用cammelCase(NotAdultException)。变量和方法以小写字母开头,使用cammelCase(age)。另外,请粘贴文本而不是图像。在此处添加更多提示:1。您的t
变量没有多大意义。一般认为有e
,ex
等(来自单词exception)2。在这种特定情况下,没有太多理由使用异常。您只需检查age<18
,然后在那里为未成年人/成年人执行代码。这将有助于提高性能。@EJoshuaS抱歉,但我认为图像更容易清除error@hev1不,他没有<默认情况下,将导入code>java.lang。他需要做的是不要让自己的类名为Exception
,并更改其包的名称。另外:请不要将您的类或包命名为与众所周知的Java类相同的名称,尤其是Java.lang
中的类。当你重载这些类的名称时,你会把一切都搞砸<代码>异常对于类和包来说都是一个糟糕的名称。我创建了一个新项目,它有一个新名称,但不起作用,但在扩展java.lang时它起作用。Exception@HagerKhaled没问题。
public class notAdultException extends Exception {
public notAdultException(String message) {
super(message);
}
}