throws指明由该方法的调用者处理throws后声明的异常。
try-catch当然是自己处理保护块中的异常了。

解决方案 »

  1.   

    try-catch:搜索该块出现的异常
    throws出现异常后的处理方法
      

  2.   

    throws 是用来申明异常的。
    比如如果操作失败的时候,可以throws new Exception()而try catch 是用来捕获 Exception()的。。事实上,我们很容易滥用try_catch。我也是一直滥用try-catch的人群之一。只有你定义的类中的方法强调了throws,你才可使用try-catch..(包括jdk中一些throwException子类的一些类的方法),非常建议,在你写了类之后,自定义一个异常类。频繁的使用try-catch会导致运行速度下降。
      

  3.   

    throws只是简单的把异常抛出到异常链上,交给JVM处理
    而try/catch/finally是有自己控制异常的扑获,以及处理
    比如这个method
    public void parse() throws NumberFormatException{
    //s接受用户输入
    int i = Integer.parseInt(s);
    }
    这个程序如果真发生异常,比如s = good啊,程序就会中止,然后输出异常的种类以及出现的位置
    而如果
    try{
    int i = Integer.parseInt(s);
    }
    catch(NumberFormatException e){
    System.err.println("Shit Happens");
    }
    这样程序就靠自己handle了exception,如果发生exception,则输出Shit Happens,程序继续运行