异常:
运行时异常:(可处理也可不处理?)
编译时异常:必须在所在的方法中声明 :
public static void eat(int m) throws NoMoneyException{....}(这是自定义的异常类)
为什么jvm对编译时异常如此严格,而对运行时异常宽松?
答:如ArithmeticException 可以通过如下语句避免 if(b = 0) return;
if(arr != null){...}
运行时异常可以通过程序员良好的习惯避免的。
如何区分运行时异常和编译时异常呢?
答:运行时异常:RuntimeException 及其子类都是(就去API中找就行了)。
编译时异常:除了运行时异常就是编译时异常。
这些不用刻意去记你去看API
查看API,继承结构
- java.lang.Object
-
- java.lang.Throwable
-
- java.lang.Exception
-
- java.io.IOException (IO异常的结构)