Java 异常类对象的类型为选中或未选中
Java 异常类对象的类型为选中或未选中,java,exception-handling,Java,Exception Handling,若异常类对象被认为是选中的:即使异常对象永远不会从go方法中抛出,该代码也可以很好地编译。实际上,可以从try块抛出的已检查异常将得到处理,没有其他异常。所以它不能被检查 若异常类对象被认为是未选中的:异常类不是Error或RuntimeException的子类,所以它不能被选中 请帮助我理解。。。它是哪种类型的对象。RuntimeException是Exception的子类,因此您的catch块会同时拾取选中和未选中的异常。RuntimeException是Exception的子类,因此您的
- 若异常类对象被认为是选中的:即使异常对象永远不会从go方法中抛出,该代码也可以很好地编译。实际上,可以从try块抛出的已检查异常将得到处理,没有其他异常。所以它不能被检查
- 若异常类对象被认为是未选中的:异常类不是Error或RuntimeException的子类,所以它不能被选中
请帮助我理解。。。它是哪种类型的对象。RuntimeException是Exception的子类,因此您的catch块会同时拾取选中和未选中的异常。RuntimeException是Exception的子类,因此您的catch块会同时拾取选中和未选中的异常。检查此链接 类异常和任何不属于RuntimeException子类的子类都是检查异常 因此,要回答您的问题,这是一个选中的异常。检查此链接 类异常和任何不属于RuntimeException子类的子类都是检查异常
所以为了回答您的问题,它是一个检查异常。异常类被视为检查异常 选中异常意味着您需要在Try-catch中包含引发异常的方法
否则,您需要添加throws声明,以便调用它的父方法将处理exeception。异常类被视为选中异常 选中异常意味着您需要在Try-catch中包含引发异常的方法
否则,您需要添加throws声明,以便调用它的父方法能够处理exeception。这实际上更像是一种排除;它既不是
错误
,也不是运行时异常
,两者都被视为未选中
未检查的异常类是运行时异常类和错误类
选中的异常类是除未选中的异常类之外的所有异常类。也就是说,选中的异常类都是Throwable
的子类,而不是RuntimeException
及其子类和Error
及其子类
这就是说,您设计的示例仍然可以编译,因为Exception
是所有运行时异常的超类,出于某种原因,这些异常预计会被捕获到您的代码块中。由于您没有声明要在go
上抛出的异常
,因此不需要捕获它,因为它不是已检查的异常
不要在生产中使用这样的代码,因为任何选中的异常或运行时异常都会被该块捕获。这实际上是一种排除;它既不是错误
,也不是运行时异常
,两者都被视为未选中
未检查的异常类是运行时异常类和错误类
选中的异常类是除未选中的异常类之外的所有异常类。也就是说,选中的异常类都是Throwable
的子类,而不是RuntimeException
及其子类和Error
及其子类
这就是说,您设计的示例仍然可以编译,因为Exception
是所有运行时异常的超类,出于某种原因,这些异常预计会被捕获到您的代码块中。由于您没有声明要在go
上抛出的异常
,因此不需要捕获它,因为它不是已检查的异常
不要在生产中使用这样的代码,因为任何选中的异常或运行时异常都将被该块捕获
- 如果认为异常类对象已选中
- 如果异常类对象被视为未选中
- 如果认为异常类对象已选中
- 如果异常类对象被视为未选中
正确。异常类本身不是已检查异常。.已检查异常是异常类的子级异常,例如IOException等 有两件事..
1-你在扔吗??
2-你是说在catch子句中声明它吗?
让我们用例子来演示它 1-如果您要抛出除(RuntimeException或其子类)之外的任何异常类,那么您必须通过catch子句处理它或通过throws声明它。无论它是异常类还是Throwable或其他选中的异常
import java.io.*;
class a {
public static void main(String [] args) {
try {
new a().go();
}
catch(Exception e) {
System.out.println("catch");
}
}
void go() {}
}
现在调用方法必须处理或声明它
void go() throws Exception
{
throw new Exception();
} //you have to handle or declare it
void callingMethod()
{
try{ } // NO NEED TO THROW Exception OR Thowable
catch(Exception e){
e.printStakeTrace();
}
}
void callingMethod()
{
try{ } // here is compiler error..it says you have to through it
catch(IOException e){
e.printStakeTrace();
}
}