异常对象都是派生于Throwable类
Throwable类下一层分为Error和Exception
Error类是Java运行时系统内部错误和资源耗尽错误,很少出现
Exception又分为RuntimeException和其他异常
RuntimeException是在程序运行时导致的异常
其他异常是程序本身没有问题,由类似于I/O错误导致的异常
RuntimeException包括:
错误的类型转换,数组访问越界,访问null指针
其他异常包括:
打开不存在的文件,在文件尾后面读取数据
抛出异常throw new EOFException
或EOFException e = new EOFException; throw e;
捕获异常
无论try是否遇到异常,都会执行finally
try{
XXXXXX;
}
catch(ExceptionType e){
XXXXXX;
}
finally{
in.close();
}
throw 和 throws 的区别?
throw:是真实抛出一个异常。
throws:是声明可能会抛出一个异常。
try-catch-finally 中哪个部分可以省略?
try-catch-finally 其中 catch 和 finally 都可以被省略,但是不能同时省略,也就是说有 try 的时候,必须后面跟一个 catch 或者 finally。
try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?
finally 一定会执行,即使是 catch 中 return 了,catch 中的 return 会等 finally 中的代码执行完之后,才会执行。