这真的很容易理解。该java.lang.Throwable中:该Throwable班是在Java语言中所有错误和异常的超类。Java虚拟机仅抛出属于此类(或其子类之一)的实例的对象,或者Java throw语句可以抛出该对象 。同样,catch子句中的参数类型只能是此类或其子类之一 。 更多关键字throws用于方法声明中,它指定了我们可能期望此方法产生的异常类型[Throwable class]。关键字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 } }当我们要使用method时throwMeAException(),由于我们掌握了它抛出某些东西的信息,因此我们不得不以特定的方式来处理它,在这种情况下,我们有三个选择。第一种选择是使用块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那些不必声明的规则。这是异常使用方面的另一个故事。