参考资料:

  1. java异常处理之throw, throws,try和catch
  2. Java 中 try-catch,throw和throws的使用

try-catch:当时捕获,当时处理;
throw:用于手动抛出一个异常(try中的异常是Java自动抛出的)。如果throw位于try语句中,则在try对应的catch中捕获并处理。否则就需要抛给调用者进行try-catch。此时,throw所在的方法必须是:[修饰符1,修饰符2,···] 返回值 方法名(形参列表) throws Exception {}表明当前方法可能抛出异常。表示的是此方法之中不进行异常的处理,而交给被调用处处理。
throws:主要是在方法定义上使用的,表示的是此方法之中不进行异常的处理,而交给被调用处处理。

重点:throw不能单独使用,只能配合throws或try{}catch{}使用。

class TestDemo {
    public static void main (String args[]) throws Exception{
        try {				// 直接抛出了一个自定义的异常类对象
            throw new Exception("自己定义的异常!");
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println(e.getMessage());
            throw new Exception("自己定义的异常!");//直接抛出,没有try-catch则必须在方法上加上:throws Exception
        }
    }
}