zoukankan      html  css  js  c++  java
  • 异常

    异常图

    异常的概念和分类

    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");
            }
        }
    }
    
    
  • 相关阅读:
    Go语言基础介绍
    webpack教程——css的加载
    Git忽略规则.gitignore梳理
    vue2.0路由-适合刚接触新手简单理解
    JAVA实现DES加密实现详解
    计算机网络: IP地址,子网掩码,网段表示法,默认网关,DNS服务器详解
    Storm:最火的流式处理框架
    神片和神回复
    论C#未来发展
    弄清UTF8和Unicode
  • 原文地址:https://www.cnblogs.com/nightrainlemon/p/11604184.html
Copyright © 2011-2022 走看看