1、什么时候throw可以单独使用?
public static String test() throws Exception{ 13 int a = 10; 14 int b = 0; 15 try{ 16 System.out.print("前"); 17 int d = a/b; 18 return "hello"; // 不执行 19 }catch(Exception e){ 20 System.out.print("后"); 21 throw new Exception("有问题"); //函数结束,抛出异常 22 } 23 //return "默认值"; 24 }
上述代码中第21行使用的是一般异常,所以不能单独使用throw(需要在方法参数后面添加throws)。
如果将其换成throw new RuntimeException("有问题"),此时即可单独使用throw,即:
public static String test(){ 13 int a = 10; 14 int b = 0; 15 try{ 16 System.out.print("前"); 17 int d = a/b; 18 return "hello"; // 不执行 19 }catch(Exception e){ 20 System.out.print("后"); 21 throw new RuntimeException("有问题"); //函数结束,抛出异常 22 } 23 //return "默认值"; 24 }
注:throw用于方法体中,抛出某种类型的异常,与异常对象联合使用,只能接一个异常对象。
2、throws不可以单独使用
用于方法头部,声明该方法会抛出什么类型的异常,与异常类型联合使用,可以接多个异常类型。