Java为什么使用异常?

Java为什么使用异常?

为什么使用异常一:

为什么要这样了?这就得首先明白,Java的编程往往是多人之间合作的,每个人负责一个或几个模块,从最开始学习Java时你就有使用别人的模块(你调用的任何Java基础语法都是由JDK的公司写好了给你的),你在后面的使用中肯定也会写模块给别人调用。

现在就可以举个例子了,假如说你现在写一个带参方法 printf(int num)给你的同事调用,他调用时传进来的num可能会出现各种各样的异常情况①,你这时候没有能力去处理这个错误的②,于是你就可以抛出(throw)这个异常信息(Exception对象)给调用你这个方法的人,告诉他出现了大概什么样个异常,然后他是处理了再调用还是直接不运行了那是他的事了。

并非所有错误都能在编译期间侦测到。有些问题必须在运行期间解决,让错误的缔结者通过一些手续向接收者传递一些适当的信息,使其知道该如何正确地处理遇到的问题。 ——Java编程实现

异常处理最根本的优势就是将检测错误(由被调用的方法完成)从处理错误(由调用方法的人完成)中分离出来

为什么要使用异常二:

使得每次调用一个方法时都要进行的全面、细致但又是重复的工作合并不再重复。
为什么敢这么说了?假如你要调用A、B、C、D、E五个方法。期中A、B、C三个三方都做了对传入参数为空的验证,C、D、F都有对参数做了"过长"的校验。那么你就要对A、B、C的返回结果校验,看是否有出现了参数为空的异常,对C、D、F返回结果校验,看是否出现参数过长的异常③。而使用异常机制后,我们直接一个catch (NullPointerException e)就可以接收所有参数为空的情况,直接一个catch (MyLongException e)④就可以接收所有参数过长的情况。甚至你可以直接一个catch (Exception e)⑤接收所有异常情况。

附注:
①比如为空,比如是一个你规定了不想要的数
②你不可能预测到这个异常的参数怎么来的,也不好直接把程序退出
③你可能要想了?我自己穿进去的参数我不知道?我会出错? 但是你要知道的是,你的程序以后也不是给你自己用的,谁知道你的用户会给你输个什么数?
④MyLongException是你调用的人自己定义的异常类,并且返回给你了。
⑤Exception是所有后缀为Exception的类的父类,由Java的向上转换的原理可以让Exception接收所有它的子类。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章