码迷,mamicode.com
首页 > 编程语言 > 详细

为什么需要java异常?

时间:2019-05-23 12:11:28      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:||   逻辑   cat   int   假设   复杂   ret   为什么   没有   

假设现在没有异常相关的语法,有这样的代码,输出父亲和儿子年龄差:

int gap(int fatherAge, int sonAge) {
        return fatherAge - sonAge;
    }

如果输入的年龄有可能是负数,那么问题来了,我该怎么修改代码?我该怎么处理这个情况?显然这个情况是不能==立即处理==的,因为在当前方法中,得到的信息不够多,需要到更高一级的情景(调用方法的地方)来处理,如下:

int gap(int fatherAge, int sonAge) {
        if (fatherAge <= 0 || sonAge <= 0) {
            return -1;
        }
        return fatherAge - sonAge;
    }
int getGap(int fatherAge, int sonAge) {
        int gap = gap(fatherAge, sonAge);
        if (gap == -1) {
            return -1;
        }
        return gap;
    }

上面是修改的gap方法和一个调用的getGap方法,可以看到,在getGap中,使用if来判断是否是错误的参数,如果是,输出-1。那问题来了,我上面说到调用的环境处理错误情况,你怎么又特么输出-1了?我只能说,现在还不是处理的时候。你又问了,那你什么时候才能处理?要知道什么时候能处理,就要知道问题是怎么来的,问题是给了错误的参数,那么就要交给==生成错误参数的方法==去处理,皆大欢喜了。
那又要问了,我为什么需要异常?从上面的方法中可以看出

  1. 如果遇到-1被正常结果占用的情况,就需要输出一个特殊值(类似c++中控制台输出一串错误信息时的情况)
  2. 如果我在getGap中没有处理特殊情况,就会传递错误的信息。
  3. 在逻辑复杂的时候,特殊情况容易跟正常情况搞混。

那么异常的作用就体现出来了,通过提供一套全新的语法(try catch throw throws)来传递错误的信息,并且强制必须处理调用函数的异常(要么抛出要么捕获),提高了代码的健壮性。

为什么需要java异常?

标签:||   逻辑   cat   int   假设   复杂   ret   为什么   没有   

原文地址:https://www.cnblogs.com/mqzpy/p/wei-shen-me-xu-yaojava-yi-chang.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!