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

  • 相关阅读:
    fgets()函数读取键盘,去掉换行符或丢弃多余的字符
    c语言gets()函数与它的替代者fgets()函数
    基于京东手机销售数据用回归决策树预测价格
    「我去,这也能行!」令人惊叹的8个深度学习应用
    常见数据结构的 Python 实现(建议收藏)
    60 分钟极速入门 PyTorch
    大牛推荐的15本学习数据分析挖掘的好书
    排名前20的网页爬虫工具
    如何11 周打造全能Python工程师!
    初学者的编程自学指南
  • 原文地址:https://www.cnblogs.com/guodong-wang/p/7202652.html
Copyright © 2011-2022 走看看