这真的很容易理解。
java.lang.Throwable:_
该类Throwable是 Java 语言中所有错误和异常的超类。只有作为此类(或其子类之一)实例的对象才会被 Java 虚拟机抛出或可以被 Java
throw语句抛出。同样,只有此类或其子类之一可以是 catch子句中的参数类型。
更多的
在方法声明中使用了关键字throws ,它指定了我们可以从该方法中期望什么样的异常[Throwable 类]。
关键字throw用于抛出作为 Throwable 类的实例的对象。
以免看到一些例子:
我们为自己创建一个异常类
public class MyException super Exception {
}
我们创建了一个方法,该方法从我们的异常类创建一个对象并使用关键字throw抛出它。
private void throwMeAException() throws MyException //We inform that this method throws an exception of MyException class
{
Exception e = new MyException (); //We create an exception
if(true) {
throw e; //We throw an exception
}
}
当我们要使用 methodthrowMeAException()时,我们不得不以特定的方式处理它,因为我们知道它会抛出一些东西,在这种情况下,我们有三个选项。
第一个选项是使用块 try 和 catch 来处理异常:
private void catchException() {
try {
throwMeAException();
}
catch(MyException e) {
// Here we can serve only those exception that are instance of MyException
}
}
第二种选择是传递异常
private void passException() throws MyException {
throwMeAException(); // we call the method but as we throws same exception we don't need try catch block.
}
第三种选择是捕获并重新抛出异常
private void catchException() throws Exception {
try {
throwMeAException();
}
catch(Exception e) {
throw e;
}
}
恢复,当您需要停止某些操作时,您可以通过一些 try-catch 块抛出异常,该异常将返回直到不是服务器。无论您在哪里使用引发异常的方法,您都应该通过 try-catch 块来处理它,或者将声明添加到您的方法中。
这条规则的例外是java.lang.RuntimeException那些不必声明的。这是关于异常使用方面的另一个故事。