java异常处理学习2021-08-03

什么是异常:

什么是异常:各种可能或者不可能预料到的错误,比如被零除,想要打开的文件不存在等;
注意,这个异常通常是程序员故意设置,比如,写一个计算器,我们知道0
不能做除数,但是万一客户使用时,故意或者非故意输入0为除数了怎么办,
当然,我们可以用if判断解决,但是,真实的程序要复杂的多,程序员不可能
预料到具体每一种实现方式,所以用异常处理机制,假如程序出现某种错误,
程序要怎么执行下去。
简单来说,异常就是程序运行时出现的一种事件,这个事件中断了指令流的进行;

异常分类:

异常的分类:Java中所有的异常都是Throwable以及其子类;
一: Error,错误,多是硬件层次问题,如内存溢出,文件损坏,Java对此无能为力。
二:Exception,异常,分为受检异常和非受检异常,表示java可以处理的异常
1,受检异常,不能通过编译,必须处理完才能编译,比如日期的parse异常
2,非受检异常,需要修改代码,可处理可不处理,注意,此处的修改代码
和处理不是一个概念,处理不是广义上的意义,是java一种手段,一种
过程,包括try catch处理和throws处理。

自定义异常类:

自定义异常类,分数0-100为例子
1,新建一个异常类ScoreException extends Exception,只有2个构造方法
2,新建一个类ScoreChecked,其中有一个方法规定了不在1-100范围内就抛出异常,
(注意,是throw关键字,是抛出这个动作,而不是throws),注意这个方法也要用
throws放在后面。
3,定义测试类,写一个输入分数并且输出的方法,throws该异常,并在调用的时候try catch
下面是具体实现代码:
1,新建一个异常类ScoreException extends Exception,只有2个构造方法:

public class ScoreException extends Exception{
    //只有两个构造方法,自动生成
    public ScoreException() {
    }

    public ScoreException(String message) {
        super(message);
    }
}

2,新建一个类ScoreChecked,其中有一个方法规定了不在1-100范围内就抛出异常:

public class ScoreChecked {
    //该方法规定什么时候抛出异常,并且在小括号和大括号之间throws
 void check(int score) throws ScoreException {
     if (score<0||score>100){
         throw new ScoreException("分数输入不对");//message能打印到控制台
     }
 }
}

3,定义测试类,写一个输入分数并且输出的方法,throws该异常,并在调用的时候try catch:

public class Demo {
    public static void main(String[] args) {
        //定义一个输入输出分数的方法
        System.out.println("请输入分数");
        Scanner sc = new Scanner(System.in);
        int score = sc.nextInt();
        //调用check方法,就要创建ScoreChecked对象
        ScoreChecked sco = new ScoreChecked();
        //try catch捕获异常
        try {
            sco.check(score);
            System.out.println(score);
        } catch (ScoreException e) {
            e.printStackTrace();//打印message
        }


    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兰林汉的驴粉丝儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值