• java 异常二、


    * 编译时异常的抛出必须对其进行处理


    * 运行时异常的抛出可以处理也可以不处理

    throws和throw的区别
    * a:throws
    * 用在方法声明后面,跟的是异常类名
    * 可以跟多个异常类名,用逗号隔开
    * 表示抛出异常,由该方法的调用者来处理

    public void setAge(int age) throws RuntimeException,AgeboundException{

    .............}


    * b:throw
    * 用在方法体内,跟的是异常对象名
    * 只能抛出一个异常对象名
    * 表示抛出异常,由方法体内的语句处理

    public void setAge(int age) throws RuntimeException {
    if(age>0 && age<=150){
    this.age=age;
    }else{
    throw new RuntimeException("年龄非法");
    }

     ====================================================

    /**
    * * A:finally的特点
    * 被finally控制的语句体一定会执行
    * 特殊情况:在执行到finally之前jvm退出了(比如System.exit(0))
    * B:finally的作用
    * 用于释放资源,在IO流操作和数据库操作中会见到
    * C:案例演示
    * finally关键字的特点及作用
    *return语句相当于是方法的最后一口气,那么在他将死之前会看一看有没有finally帮其完成遗愿,如果有就将finally执行
    *后在彻底返回
    */
    public static void main(String[] args) {
    try {
    System.out.println(10/0);
    } catch (Exception e) {
    System.out.println("除数为零了");
    System.exit(0); //退出jvm虚拟机 finally唯一不执行的情况是遇到 exit
    return;
    } finally {
    System.out.println("看看我执行了吗");
    }
    }

    =======================================================

    public class Test1 {
    
        /**
         * * A:面试题1
                * final,finally和finalize的区别
                * final可以修饰类,不能被继承
                * 修饰方法,不能被重写
                * 修饰变量,只能赋值一次
                * 
                * finally是try语句中的一个语句体,不能单独使用,用来释放资源
                * 
                * finalize是一个方法,当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
            * B:面试题2
                * 如果catch里面有return语句,请问finally的代码还会执行吗?如果会,请问是在return前还是return后。
         */
        public static void main(String[] args) {
            Demo d = new Demo();
            System.out.println(d.method());
        }
    
    }
    
    class Demo {
        public int method() {
            int x = 10;
            try {
                x = 20;
                System.out.println(1/0);
                return x;
            } catch (Exception e) {
                x = 30;
                return x;
            } finally {
                x = 40;
                //return x;                    千万不要在finally里面写返回语句,因为finally的作用是为了释放资源,是肯定会执行的
                                            //如果在这里面写返回语句,那么try和catch的结果都会被改变,所以这么写就是犯罪
            }
        }
    }

     

    /**
    * * A:Throwable的几个常见方法
    * a:getMessage()
    * 获取异常信息,返回字符串。
    * b:toString()
    * 获取异常类名和异常信息,返回字符串。
    * c:printStackTrace()
    * 获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。
    * B:案例演示
    * Throwable的几个常见方法的基本使用
    */

         */
        public static void main(String[] args) {
            try {
                System.out.println(1/0);
            } catch (Exception e) {            //Exception e = new ArithmeticException("/ by zero");      这里已创建异常对象 ,就能够直接调用异常类的方法
                //System.out.println(e.getMessage());        //获取异常信息
                //System.out.println(e);         //调用toString方法,打印异常类名和异常信息
                e.printStackTrace();        //jvm默认就用这种方式处理异常
            }
        }
  • 相关阅读:
    关于在n-1的数组中找到那个被减去的数及异或与位与
    oracle 递归查询
    EL,OGNL表达式 $ % #
    TypeError: record.get is not a function
    sql添加、查询小错误
    Unity中操作手机常用功能
    Unity 中PlayerPrefs类实现数据本地化存储
    unity3d 下操作excel 与打印
    unity中读写二进制文件
    List排序问题
  • 原文地址:https://www.cnblogs.com/yimian/p/6537656.html
Copyright © 2020-2023  润新知