JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
try catch
- 异常处理
try catch
或者throws
try
: 将可能发生异常的代码 用{}包裹起来catch
:捕获特定的异常(如果预测多个异常先写范围小,后写范围大的)- 如果
try
中出现异常则程序将不继续执行try
中的代码,而直接跳到catch
里面
throws throw
-
throws
:用在方法上,表示此方法可能出现异常;但对方法出现的异常不做处理,上交给 上级(方法调用处main)处理public void test() throws Exception{ }
-
throw
:声明异常,使用在方法内部,jdk中有很多异常,如果这些内置的异常 仍然不能满足项目的需求,那么就需要创建 自定义异常。-
继承
Exception
public class MyException extends Exception{ public MyException(String message){ //message异常信息 super(message); } }
-
使用
throw
自定义异常//如何使用try或者throws public static void main(String[] args) { try { int i = 0/1; throw new MyException("运算错误"); } catch (MyException e) { e.printStackTrace(); } } //运行结果 com.xht.exception.MyException: 运算错误 at com.xht.test.Test.main(Test.java:21)
finally
无论运行是否正常都会执行的代码
即使代码代码中有return 也会执行finally里面的代码
-
//测试有return是否执行finally里面的代码
public static String test1(){
try{
return "hello";
}catch (Exception e){
e.printStackTrace();
return "word";
}finally {
System.out.println("finally");
}
}
运行结果:
public static void main(String[] args) {
test1();
}
//结果
finally