一.Throwable这个Java类被用来表示任何可以作为异常被抛出的类.Throwable对象可分为两种类型(从Throwable继承而得到的类型):
1.) Error用来表示编译时和系统错误
2.) Exception是可以被抛出的基本类型(程序员关系的通常是Exception
二.特例RuntimeException
1.) 属于运行时异常的类型有很多,它们会自动被Java虚拟机抛出,这些异常都是从RuntimeException中继承而来的.
2.) RuntimeException是 "不受检查异常"
,这种异常属于错误,将被自动捕获.
3.) RuntimeException异常也许会穿越所有的执行路径知道main()方法,而捕获被捕获,如果RuntimeException没有被捕获而直达main(),那么在程序退出前将调用printStackTrace()方法
4.) 只能在代码中忽略RuntimeException(及其子类)类型的异常,其他类型的异常处理都是由编译器强制实施的
5.)RuntimeException代表的是编程错误:
- 无法预料的错误.比如你从控制范围之外传递进来的null引用.
- 作为程序员,应该在代码中进行检查的错误.在一个地方放生异常,常常在另一个地方导致错误.
package exceptions; //: exceptions/NeverCaught.java // Ignoring RuntimeExceptions. // {ThrowsException} public class NeverCaught { static void f() { throw new RuntimeException("From f()"); //不用try块捕获,编译器自动捕获 } static void g() { f(); } public static void main(String[] args) { g(); } } ///:~