2、Java异常处理 理解心得

程序运行过程中你无法提前预知使用者的操作(虽然你在程序代码中尽可能多的考虑到可能会出异常的情况),这就好比在游戏中你永远不知道你的队友是谁一样!那么我们就需要做异常处理。这里需要说明的处理异常的目的是为了不让挂掉。

举例:输入两个值,求合;当客户不小心把小数点输入成了句号或者中文模式的点,那么就可能出错;如下:

import java.util.Scanner;

public class Mtest {

    public static void main(String[] args) {

        Scanner scan= new Scanner(System.in);
        double a=scan.nextDouble();
        double b=scan.nextDouble();
        double c=a+b;
    }
}

运行过程 先输入10 再输入1a

“/Applications/IntelliJ IDEA.app/Contents/jbr/Contents/Home/bin/java” -javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=57678:/Applications/IntelliJ IDEA.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Users/liquntao/Documents/cmtech/untitled/out/production/untitled Mtest
12
1a
Exception in thread “main” java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextDouble(Scanner.java:2564)
at Mtest.main(Mtest.java:9)

可能有些人会说,稍有点常识的人都不会这些操作呀!注意墨非定律:凡有可能的一定会。用户永远是对的,而你要做的就是减少这种错误(所以程序员要有一个好的心态)。
接下来我们要把这个异常处理掉。
1.通过try catch 异常处理

try {
            Scanner scan= new Scanner(System.in);
            double a=scan.nextDouble();
        } catch (Exception e) {
            System.out.println("输入不合法");
        }

2.通过try catch 打印异常

try {
            Scanner scan= new Scanner(System.in);
            double a=scan.nextDouble();
        } catch (Exception e) {
            e.printStackTrace();
        }

众所周知,异常打印是很多英文提示,可以通过throws 与throw 组合"汉化"错误信息

我们有一个需求,当程序无论是否出错最终要运行一段代码;比如上上面的代码有两种方式,要么把代码写在try 语句之后,要么在cach 语句块中加finally

 public static void main(String[] args) {

        try {
            Scanner scan= new Scanner(System.in);
            double a=scan.nextDouble();
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            System.out.println("程序运行结束");//方式1
        }
        System.out.println("sssss");//方式2
    }

以上是异常处理的理解;当然可能还有一些点说的不够全面但作为初学者先理解这些,以后在项目中加深印象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值