java字节码对于异常的处理:
1、统一采用异常表的方式来对异常进行处理。
2、当异常处理存在finally语句块时,jvm的处理方式是将finally语句块的字节码拼接到每一个catch块里面。换句话说,程序中存在多少个catch块,就会在每一个catch块后面重复多少个finally语句块的字节码。
private String test(){
try {
FileInputStream is = new FileInputStream("test.txt");
}catch (FileNotFoundException e){
}catch (Exception e){
}finally {
System.out.println("--finally--");
}
return "ok";
}
如果在catch块中遇到了return语句,是怎样的执行过程呢
private String test(){
try {
FileInputStream is = new FileInputStream("test.txt");
}catch (FileNotFoundException e){
return "fail";
}catch (Exception e){
return "fail";
}finally {
System.out.println("--finally--");
}
return "ok";
}