java为什么要有异常机制?
在c中我们如何处理异常的?用一些if-else来处理的,这样的话在不同的地方都要考虑很多种不同的情况,而且不能重用。
Java中引入异常的机制来处理这些问题。
常见的问题可以分为错误(error)和异常(Exception)。这两个种类在java中有两个名字相同的类来实现。都继承于Throwable父类(虽然看起来是接口的名字,但是其实是一个类)。
问题发生的种类(错误和异常的区别):
错误:系统本身的问题,程序本身无法恢复和预防。和系统、资源耗尽有关。一般由jvm抛出。
假如出现这种错误,除了尽力使程序安全退出外,在其他方面是无能为力的。
异常:程序本身可以进行处理
异常也分为受检查的异常和运行时异常。受检查的异常如果不处理,编译会无法通过。假如出现RuntimeException,那么一定是程序员的错误。什么空指针、数组越界、类型转换,都属于这个。如果不处理异常,线程退出或者主函数结束。
1.异常发生但不不捕获-编译器无法通过
2.异常发生捕获-可以不处理,throw抛出,让调用方法来处理
-自己处理 try-catch-finally
未完待续
请参考
https://blog.csdn.net/xialei199023/article/details/63251277
很全面