zoukankan      html  css  js  c++  java
  • Java学习之异常

    1.简述什么是异常、异常的继承体系?
    Java代码在运行时期发生的问题就是异常。
    异常的继承体系:
    Throwable: 它是所有错误与异常的超类(祖宗类)
      |- Error 错误
      |- Exception 编译期异常,进行编译JAVA程序时出现的问题
      |- RuntimeException 运行期异常, JAVA程序运行过程中出现的问题

    2.简述异常的处理方式?
    异常的处理方式:
    a:JVM的默认处理方式
    把异常的名称,原因,位置等信息输出在控制台,同时会结束程序。
    一旦有异常发生,其后来的代码不能继续执行。
    b:解决程序中异常的手动方式
    a):编写处理代码 try...catch...finally
    b):抛出 throws

    3.throw和throws关键字的使用位置和格式?
    throw:
    使用位置:方法内部
    使用格式:throw new 异常类名(参数);
    throws:
    使用位置:方法声明上
    使用格式:修饰符 返回值类型 方法名(参数) throws 异常类名1,异常类名2… { }

    4.多个catch处理的注意事项?
    有顺序:
    平级异常:抛出的异常类之间,没有继承关系,没有顺序
    上下级关系的异常:越高级的父类,越写在下面

    5.简述finally关键字的特点和作用?
    * A: finally的特点
    * 被finally控制的语句体一定会执行
    * B:finally的作用
    * finally,无论程序是否有异常出现,程序必须执行释放资源。
    如:IO流操作和数据库操作中会见到

    6.Throwable类的常见方法及方法描述?
    a:getMessage()方法
    返回该异常的详细信息字符串,即异常提示信息

    b:toString()方法
    返回该异常的名称与详细信息字符串

    c:printStackTrace()方法
    在控制台输出该异常的名称与详细信息字符串、异常出现的代码位置

    7.自定义异常的格式?
    class 异常名 extends Exception{ //或继承RuntimeException
      public 异常名(){
      }
      public 异常名(String s){
        super(s);
      }
    }

    面试题:

    1、 throw 和throws 的区别是什么
    throw
    定义在方法中,后边跟的是异常对象
    同时只能抛出一个异常对象

    throws
    定义在方法的声明上,后边跟的是异常的类型
    后边同时可以跟多个数据类型


    2、 finally 返回路径面试题
    finally :在正常情况下,肯定执行的代码
    在try中return,在finally中修改:
    //返回路径:每次碰到return就会在返回路径中临时存储这个被返回的值,无论方法内有任何的改变,返回路径中的这个值一致不变。

    /**
     * 返回路径:每次碰到return就会在返回路径中临时存储这个被返回的值,
     *   无论方法内有任何的改变,返回路径中的这个值一直不变。
     * @author vanguard
     *
     */
    public class Demo01 {
        public static void main(String[] args) {
            System.out.println(method());
        }
        public static int method() {
            int i = 0;
            try {
                System.out.println(1/0);
                return i;
            } catch (Exception e) {
                
                e.printStackTrace();
            } finally {
                i = 200;
                System.out.println("我一定会运行");
            }
            return i;
        }
    }

    运行结果是

    200

  • 相关阅读:
    Ocelot简易教程(二)之快速开始1
    Ocelot简易教程(一)之Ocelot是什么
    InfluxDB学习之InfluxDB的基本操作
    InfluxDB入门教程
    .NET Core微服务之基于App.Metrics+InfluxDB+Grafana实现统一性能监控
    .net Core 微服务
    IdentityServer4 接口说明
    WINDOWS命令行关闭本地占用的端口
    并发负载压力测试
    C#操作Mongodb
  • 原文地址:https://www.cnblogs.com/guodong-wang/p/7202652.html
Copyright © 2011-2022 走看看