throw和throws都是抛出异常,两者的区别如下:

  • 使用位置不同:throws使用在方法上,后面跟的是异常类,可以是多个异常类;throw使用在方法中,后面跟的是异常对象。
  • 使用方法不同:throws可以单独使用,在方法上声明即可;throw需要配合try-catch-finally语句配套使用,或者与throws配套使用。

例如:

import java.io.IOException;
import java.sql.SQLException;
public class HelloWorld {

    public static void main(String args[]) throws SQLException, IOException {
        //这里调用方法test1() ,且申明了多个异常
        HelloWorld helloWorld = new HelloWorld();
        helloWorld.test1();

        //这里需要配合 try catch finally 使用
        try {
            throw new Exception("Test throw exception");
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    public void test1() throws IOException, SQLException{
        System.out.println("print test1 method");
    }
}