JAVA我收到一个“未报告的异常”编译器错误
我试图编译这段代码,但它一直有一个错误JAVA我收到一个“未报告的异常”编译器错误,java,exception,checked-exceptions,catch-exception,Java,Exception,Checked Exceptions,Catch Exception,我试图编译这段代码,但它一直有一个错误 errThrower.java:37: error: unreported exception Exception; must be caught or declared to be thrown throw new Exception(); 这个异常是在callmethodErr中抛出的,我认为它已经在main中被捕获了,但是我不知道发生了什么 谢谢大家 import java.util.IllegalFormatConversionExcepti
errThrower.java:37: error: unreported exception Exception; must be caught or declared to be thrown
throw new Exception();
这个异常是在callmethodErr中抛出的,我认为它已经在main中被捕获了,但是我不知道发生了什么
谢谢大家
import java.util.IllegalFormatConversionException;
public class errThrower
{
public static void main(String[] args)
{
try
{
callmethodErr();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void methodErr() throws Exception
{
System.out.println("error thrown from methodErr");
}
public static void callmethodErr()
{
try
{
methodErr();
}
catch (Exception e)
{
System.out.println("error thrown from callMethodErr");
throw new Exception();
}
}
}
此方法:
public static void callmethodErr()
{
包含以下行:
throw new Exception();
但不声明它抛出异常,因此:
此方法:
public static void callmethodErr()
{
包含以下行:
throw new Exception();
但不声明它抛出异常,因此:
异常是一个已检查的异常,这意味着您必须在抛出异常的方法中捕获它,或者声明您的方法可能会抛出此异常。您可以通过如下方式更改方法callmethodErr的签名来实现此目的:
public static void callmethodErr() throws Exception
{
// ...
}
有关其工作原理的详细说明,请参见:在Oracle的Java教程中。异常是一个选中的异常,这意味着您必须在抛出它的方法中捕获它,或者声明您的方法可能抛出此异常。您可以通过如下方式更改方法callmethodErr的签名来实现此目的:
public static void callmethodErr() throws Exception
{
// ...
}
有关如何工作的详细说明,请参见:在Oracle的Java教程中。正如编译器所说,方法callmethodErr可以引发异常。因此,必须在方法callmethodErr中捕获该异常,或声明方法callmethodErr以引发该异常。您是否在main方法中捕获它与此无关,因为您也可以从另一个非main方法调用方法callmethodErr,然后忘记捕获它,并且编译器必须防止这种情况
像这样声明公共静态void callmethodErr抛出异常的方法正如编译器所说,方法callmethodErr可以抛出异常。因此,必须在方法callmethodErr中捕获该异常,或声明方法callmethodErr以引发该异常。您是否在main方法中捕获它与此无关,因为您也可以从另一个非main方法调用方法callmethodErr,然后忘记捕获它,并且编译器必须防止这种情况
像这样声明公共静态void callmethodErr throws Exception的方法callmethodErr尚未使用throws Exception定义,但它确实定义了。这是显而易见的吗?请允许我提醒你,如果有人帮助过你,接受回答是礼貌的。callmethodErr没有定义为抛出异常,但它确实存在。这是显而易见的吗?请允许我提醒你,如果有人帮助过你,接受回答是礼貌的。。