Java异常处理

1.什么是异常?

异常就是代表程序出现的问题。Java会将异常封装成一个异常对象,抛给JVM虚拟机,JVM虚拟机会将程序暂停再将异常对象打印出来。

2.异常的体系

在这里插入图片描述
Error:代表的系统级别错误(属于严重问题),一般开发人员用不到,属于是sun公司自己用的。

Exception:代表程序可能出现的问题。

  • RuntimeException运行时异常:编译阶段不会出现错误提醒,运行时出现的异常(例如数组越界)
  • 其他异常:编译时异常:编译阶段会出现错误提醒的

3.异常的处理

方法一:选中代码块,Ctrl+alt+T键选择try/catch将代码块包围捕获异常
在这里插入图片描述

try{
    //监视的代码
}catch(异常类型1 变量){        //捕获异常
    
}catch(异常类型2 变量){        //捕获异常
    
}finally{                         //无论是否出异常,都会执行
    
}

方法二:在方法上使用throws关键字,可以将方法内部出现的异常抛出去给调用者处理

public static void main(String[] args) throws 异常1,异常2,异常3{
    
}

4.自定义异常

自定义运行时异常

运行时异常就是编译时不报错(编译器不提醒),程序运行时才报错

自定义运行时异常步骤:

  • 定义一个异常类继承RuntimeException
  • 重写构造器。
  • 通过throw new异常类来创建异常对象并抛出

自定义运行时异常类

public class MyException extends RuntimeException{   //继承RuntimeException
    /*重写构造器*/
    public MyException(){   //无参构造器
        
    }
    public MyException(String message){   //有参构造器
        super(message);   //将异常信息送给父类
    }
}

自定义异常的使用

public MyClass{
    
    public static void main(String[] args){   //主函数
    	try{
            number(223);     //调用方法           
        }catch(Exception e){   //捕获异常
            e.printStackTrace();   //接收抛出的异常,打印异常信息
            
        }
	}
    
    /*自定义方法*/
    public static void number(int num){
        if(num > 0 && num < 150){
            System.out.println("合法数字":num);
        }else{
            //如果数字不合法,则抛出异常
            throw new MyException("数字不合法:"+num);
        }
    }
}

自定义编译时异常

自定义编译时异常的方法与自定义运行时异常的方法相同,但自定义编译时异常需要继承的是Exception类。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

silly_foxWY

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

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

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

打赏作者

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

抵扣说明:

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

余额充值