Java异常体系

Java异常体系

异常的概念

程序不正常的退出。

java语言的异常

java语言的所有异常的父类是Throwable,该类主要有两个直接的子类,分别是:
在这里插入图片描述

  • Error
    产生的原因主要硬件原因,比如内存空间的不足,磁盘损坏等。
  • Exception
    Java程序运行过程中产生的(程序的逻辑出错,程序运行的内存不足等都会导致该异常),
    Exception又分为两种分别是:
    - 编译异常
    - 运行时异常

编译时异常

           编译时异常必须要显示抛出给方法的调用者,或者必须使用try....catch异常捕获机制
    来捕获异常

运行时异常

          运行时异常不会出现编译错误,只有在程序运行出错的时候会打印异常相关信息,运行时异常的父类是RuntimeException,该异常不需要显示抛出
   也不需要try....catch机制捕获。

异常的处理机制

     异常的处理机制主要有两种:
  • 第一种是将异常抛出给给调用者(调用者指的是方法),通过throws 关键字将异常抛出给方法的调用者,比如:
    在这里插入图片描述

  • 将异常使用 try…catch机制捕获

    try{
    语句块1
    语句块2
    语句块3

    语句块n
    语句块n+1
    }catch(异常类型1 e1){
    语句块1
    }catch(异常类型2 e2){
    语句块2
    }catch(异常类型3 e3){
    语句块3
    }catch(异常类型4 e4){
    语句块4
    }catch(异常类型5 e5){
    语句块5
    }finally{
    //此处的语句库无论如何都会被只能
    }

    总结:程序会依次执行语句块1到语句块n+1,如果当执行到某一个语句块的时候出现了 异常,那么Java程序就会到相应的catch块
    里面去寻找有没有相应的异常和改异常类型匹配,如果匹配那么及使用该catch块来处理 该异常,否则该异常将交给虚拟机处理。finally块不管程序是否出现异常都会被执行,这种设计主要可以帮助我们关闭某些资源连接

    注意:异常的顺序必须按照从小到大的方式捕获。

手动抛出异常

手动抛出异常使用 throw 关键字
语法为 : throw 异常对象。表示手动抛出的异常对象

在这里插入图片描述

自定义异常

主要集成RuntimeException类,添加上相应的构造器方法和自定义给的构造器方法例如:

package com.tedu.cn.api.ex;

public class PasswordException extends RuntimeException{

    public PasswordException() {
    }

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


    public PasswordException(String message, Throwable cause) {
        super(message, cause);
    }

    public PasswordException(Throwable cause) {
        super(cause);
    }
    public PasswordException(int type,String message){
        switch (type){
            case 1:
                System.out.println(message);
                break;
            case 2:
                System.out.println(message);
                break;
            case 3:
                System.out.println(message);
                break;
        }

    }
    public PasswordException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
        super(message, cause, enableSuppression, writableStackTrace);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值