Java异常机制

一、什么是异常 异常的处理机制

所谓异常,就是在程序的执行过程中,出现了种种非正常情况,最终导致JVM虚拟机非正常的停止

在Java的世界中,我们本身就存在一个一个异常的类,产生异常的无非就是创建一个异常的对象并且将它抛出,一些前辈们已经为我们罗列了成百上千的异常情况。 Java处理异常的的方式是中断处理

1、异常的分类

特别强调,error的JVM两个异常第一个是栈溢出,第二个是内存溢出

(1)Error:

(2)Exception:

2、异常处理的五个关键字

try/catch/finally | throw/throws

3、异常处理机制三个关键字的作用,以及 他们的执行过程

try - catch - finally 

补充:finally可有可无,Io和资源关闭的时候,里面放这些代码;但是try和catch一定要有的!

4、想要捕获多个异常可以在直接罗列即可,要把最大的异常写到最后面,要不然执行第一个捕获异常就停止了(当我们把范围大的异常写到上面的时候,系统会报错,报错的内容是上面的错误异常范围大,已经包含了小的异常)

注意:catch中变量后面的字母可以随便定义

5、生成try/catch快捷键

ctrl + Alt + T

6、我们也可以选择主动抛出异常,这里就用到了throw和throws

二者的区别在于:

throw是写在方法体上的;

throws是写在方法的定义上的

二、常见的异常类及解决办法

1、UnsupportedClassVersionError : 提示当前的jdk版本过低,需要更新jdk版本

那么更换JDK版本的方法如下:

(1)点击File中的Project Structure

(2)点击SDKs

(3)点击“+”号,然后点击“Add JDK”

(4)点击Modules,选择切换的JDK语言标准

(5)点击Dependencies,导入JDK对应版本的原生依赖

(6)点击Project,查看JDK默认值是否是新的版本号,如果不是则手动调整一下

(7)最后点击Apply,点击OK即可!

2、InvalidClassException:序列化冲突异常

(1)出现原因:

(2)解决方法:

在类中加这么一个属性,就像但与我们在对这个类修改的时候,当我们再次进行序列化或者反序列化时,程序不会认定这是一个新的类而是把它当作这个类的版本升级

三、自定义异常

方法很简单,要继承Exception类

//测试自定义异常类
public class TestException extends Exception{

    private int datail;

    public TestException(int a) {
        this.datail = a;
    }

    @Override//作用就是可以打印异常信息
    public String toString() {
        return "TestException{" +
                "datail=" + datail +
                '}';
    }
}


//测试类
public class Test {
    static void test(int a) throws TestException {
        //写一个容易出现异常的方法
        System.out.println("传递的参数为:" + a);
        if (a > 10) {
            throw new TestException(a);
        }
        System.out.println("OK");
    }

        public static void main (String[]args){
            try {
                test(11);
            } catch (TestException e) {//这个e会调用异常类的toString方法,打印异常信息
               //当然这里面还可以自己加一些处理异常的代码块,解决出现的问题
                System.out.println("TestException->" + e);
            }
        }
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Be explorer

若认可笔者文章,手头富裕望支持

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

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

打赏作者

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

抵扣说明:

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

余额充值