美文网首页
Java基础 异常(一)——出错处理(异常之前)

Java基础 异常(一)——出错处理(异常之前)

作者: 尘与曦 | 来源:发表于2018-12-12 17:10 被阅读0次

    异常是什么?在Java里,异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出 java.lang.ArithmeticException 的异常。

    我们这一节主要是讲解异常机制之前的的出错处理方法。我们先来说说为什么需要进行出错处理。

    先看代码

main Converter类

    在如图所示的代码中,Converter类负责将一个为数字的字符串转化为一个int型的数字(这里仅支持正数,在这里不是重点!),我们的示例是将"123"转化为123,显然是成功的,不会出错。

    思考,如果输入的字符串有问题,该怎么办?

    考虑以下两种出错情况:

1、用户输入了非法字符,如"201k8"

2、用户输入过长,如"112233445566"(注:int型整数的范围上限为2147483647)

    显然,我们作为程序的提供方,不能要求客户必须使用数字输入(我们权力还没那么大,如果你权力有那么大,那么可以不用考虑这些情况发生),也有可能用户手抖了不小心输入了个字母。那么我们应当怎么处理可能出现的这些错误,直接让程序报错,中断程序运行?一个优秀的程序员应该避免这种情况发生,当这种情况出现时,我们可以提醒用户,“输入错误,请检查后重新输入”,(用户是上帝,做一款友好的程序给用户),那应该怎么做呢?如何将出错信息返回给调用者?我们可以加一条if语句进行判断,检查一下用户的输入!

第一种方法:返回值

    规定:返回-1表示非法字符,-2表示超出范围(如果可以返回负数时,此方法不可行)

加一条if语句判断

第二种方法:添加属性(标识法)

    private int status = 0;

    status为0表示转换正常;-1表示非法字符;-2表示超出范围

判断字符

同理,字符长度检测(具体情况忽略,这不是重点!)

溢出情况

这时,main函数应该修改为

main

这样,大致能达到我们的要求。

    当错误情况发生时,这里给出的是一种普通的解决办法(不一定是最好的办法),也可以使用异常机制(Java对异常处理机制比较完善),当对程序的健壮性要求较高,需求较大时,我们就应该考虑异常机制了(下节见)。

注:

    1、这里我们讨论的错误指“可预期的出错情况”!

    2、为什么不一定是最好的办法?

    在大型程序下,对于一些较多的预期错误等情况下,可优先考虑使用Exception机制,方便管理。但这种机制并不是没有缺点,比如,通常情况下资源需求比这节的出错处理方法要多,耗时较高,Exception也就不能滥用。所以,对于一些小错误下,可考虑使用这节所说的出错处理方法。

相关文章

  • Java基础 异常(一)——出错处理(异常之前)

    异常是什么?在Java里,异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。比如...

  • 异常处理

    JAVA严格的异常处理机制和类型检查机制 异常处理手贱异常非手贱异常 异常链处理 异常是在程序出错的时候能知道程序...

  • Java基础之异常

    Java基础之异常 目录 异常简单介绍 ThrowableErrorException 异常分类 如何处理异常异常...

  • Java基础系列-Exception异常处理

    原创文章,转载请标注出处:《Java基础系列-Exception异常处理》 一、概述 Java代码中的异常处理是非...

  • Java基础之异常处理

    Java基础之异常处理 在Java程序中,异常分为编译异常以及运行时异常 编译异常:程序在编译期间就出现的异常,必...

  • Java基础——异常详解

    JAVA异常与异常处理详解 一、异常简介 什么是异常? 异常就是有异于常态,和正常情况不一样,有错误出错。在jav...

  • 2020-01-15 try{}catch(){}异常处理

    异常处理:try{出错的}catch(){出异常,需要异常处理} finally{不管出不出异常都进入finall...

  • Java基础07IO

    Java 基础06集合类 异常 了解什么是异常,异常的由来,常见的异常,异常的分类,掌握jvm对异常的默认处理方案...

  • Java基础-异常-异常处理方法

    Java工程师知识树[https://www.jianshu.com/p/db77d19a25f6] / Ja...

  • Java基础-异常处理

    捕获异常 try-catch try捕获异常后,catch中要有针对问题的处理,否则就是隐藏异常 catch可以是...

网友评论

      本文标题:Java基础 异常(一)——出错处理(异常之前)

      本文链接:https://www.haomeiwen.com/subject/tnhphqtx.html