异常

异常的概念和分类
  1. 概念:java提供处理程序错误的一种机制
  2. 分类:Throwable所有错误和异常的超类
    Error:称为错误,由java虚拟机生成并抛出,包括动态连接错误虚拟机错误,程序对其不做处理
    Exception:所有异常类的父类
  3. Exception:分为运行时异常RuntimeException,检查异常CheckedException
    RuntimeException可能发生在Java运行期间抛出的异常
    CheckedException编译期间出现的错误,编译器会强制程序去捕获此类异常
异常的产生和传递
  1. 产生
    1)NUllPointerException:空指针异常,操作一个null对象的属性和方法时,会抛出该异常
    2)OutofOutoMemoryError:要分配的对象的内存超过了当前最大的堆内存
    3)IOException:对磁盘文件进行操作时,经常会遇到
    4)FileNotFoundException:文件找不到
    5)ClassNotFoundException:找不到类,一般是该路径下找不到class类
    6)ClassCastException:类转换异常
    7)NoSuchaMethodException:没有该方法,一般发生在反射调用该方法的时候
    8)IndexOutOfBoundsException:数组下标越界
    9)ArithmeticException:算术异常
    10)SQLException:数据库异常
  2. 传递
    throws抛异常
异常的处理

1)try...catch语句块处理
2)throws抛出处理

自定义异常

要求:
1)类名最后为Exception,继承Exception或者RuntimeException(如果异常可以不被处理)
2)构造方法
public MyException() {}
public MyException(String message) {super(message);}
3)自定义异常,并抛出
throw new MyException(message)
throws MyException
4)该方法抛出异常
5)用try{调用该方法} catch(MyException e){e.printStackTrace();}
实例:

package com.java.exception;

/**
 * @Auther: NightRain Lemon
 * @create time: 2019/9/28 17:46
 * @Description: 自定义异常
 */

//1. 继承RuntimeExceptio
public class ExceptionDemo01 extends RuntimeException {
    //2. 构造方法
    public ExceptionDemo01() {}
    public ExceptionDemo01(String message) {
        super(message);
    }
}

class Main {
    public static void main(String[] args) {
        int i = -1;
        //用try...catch处理自定义异常
        try {
            MyException(i);
        } catch (ExceptionDemo01 e) {
            e.printStackTrace();
        }
    }

    //自定义异常,并抛出
    public static void MyException(int i) throws ExceptionDemo01 {
        if (i < 0) {
            throw new ExceptionDemo01("233");
        }
    }
}

转载于:https://www.cnblogs.com/nightrainlemon/p/11604184.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值