• java 异常的总结


    异常:运行过程中,将程序发生的不正常的情况成为“异常”;

    异常事件大致可分为两种:

    1. Error:JVM系统内部错误,资源耗尽等严重情况。
    2. Exception:其他因编程错误或偶然的外部因素导致的一般问题。

    java异常层次如下:

    java碰到异常时,程序往往会中断执行,我们往往通过异常处理机制 阻止程序中断执行 ,其中我们可以处理的异常一般为Exception型的。java异常处理有两种方式捕获 抛出。

    异常的捕获大致如下:

    public static void main(String[] args) {
            int i = 0;
            try {//在try()中,如果碰到有异常的代码,try里面的剩余代码不会继续执行
                System.out.println(3/i);
            }catch(Exception e) {//当不知道捕获的是什么异常的时候,可以使用所有异常的父类Exception
                e.printStackTrace();//获取异常信息
                System.out.println(e.getMessage());//获取关键异常信息
            }finally{
                System.out.println("----");//此段代码可写可不写,这是捕获异常时最终执行的一段代码
            }
            System.out.println("*******");
            
        }
    捕获异常

    抛出异常大致如下:

    public static void main(String[] args) {//也可以在main方法中继续throws Exception抛出异常
            //main方法中抛出的异常直接抛到了java虚拟机上,就不能再程序中处理了,因此一般不这么做
            B b = new B();
            try {//throws在代码处抛出的异常,在调用捕获处理
                b.test();
            }catch(Exception e){
                e.printStackTrace();
            }
            
        }
        
    }
    
    class B{
        int i;
        public void test() throws Exception{//可以使用throws在代码这里抛出异常,交给代码调用出捕获
            B b = null;
            System.out.println(b.i);
        }
    抛出异常

    我们也可以自定义抛出异常的内容,大致代码如下:

    public void test1(int age) throws Exception{
            if(age>=0 && age<=150) {
                System.out.println("年龄是"+age);
            }else {//此处是定义抛出异常的内容
                throw new Exception("年龄不在0-150之间");
            }
    自定义抛出异常的内容

    我们除了可以自定义抛出异常的内容,我们也可以定义一个异常类,用于抛出,不过java自带的异常已经够用的了,一般不需要我们自己定义异常类

    当子类重写父类的方法是,如果父类方法有抛出异常,那么子类重写的方法不能抛出比父类方法异常更大的异常。

  • 相关阅读:
    函数式语言(老师作业)
    session/cookie
    Linux根目录下各个目录的功能介绍
    Navicat12安装文件和破解补丁
    正则表达式验证示例
    RequestDispatcher接口示例
    hello2部分源码解析
    Introduction of Servlet Filter
    关于hello1中的web.xml解析
    Annotation解释
  • 原文地址:https://www.cnblogs.com/wfswf/p/14634423.html
Copyright © 2020-2023  润新知