• 面试知识点七:异常


    74.throw 和 throws 的区别?

    75.final、finally、finalize 有什么区别?

    76.try-catch-finally 中哪个部分可以省略?

    77.try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?

    78.常见的异常类有哪些?

    74.throw 和 throws 的区别?

    throws:用来声明一个方法可能产生的所有异常,不做任何处理而是将异常往上传,谁调用我我就抛给谁。
        用在方法声明后面,跟的是异常类名
        可以跟多个异常类名,用逗号隔开
        表示抛出异常,由该方法的调用者来处理
        throws表示出现异常的一种可能性,并不一定会发生这些异常
    throw:则是用来抛出一个具体的异常类型。
        用在方法体内,跟的是异常对象名
        只能抛出一个异常对象名
        表示抛出异常,由方法体内的语句处理
        throw则是抛出了异常,执行throw则一定抛出了某种异常  

    75.final、finally、finalize 有什么区别?

    1、在java中,final可以用来修饰类,方法和变量

    • 当用final修饰类时,表明该类不能被其他类所继承。
    • 当用final修饰方法时,表明该方法不能被重写。
    • 当用final修饰变量时,表明其值不能被改变。

    2、finally作为异常处理的一部分,它只能用在try/catch语句中,并且附带一个语句块,表示这段语句最终一定会被执行(不管有没有抛出异常),经常被用在需要释放资源的情况下。(×)(这句话其实存在一定的问题)

    3、finalize()是在java.lang.Object里定义的,也就是说每一个对象都有这么个方法。这个方法在gc启动,该对象被回收的时候被调用。

      final、finally与finalize的区别

    76.try-catch-finally 中哪个部分可以省略?

    • finally可以被省略,只使用try-catch
    • catch可以被省略,只使用try-finally

    77.try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?

      

    78.常见的异常类有哪些?

      Exception和Error都是继承了Throwable类,在java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch),他是异常处理机制的基本组成类型。 
    Exception和Error体现了java平台设计者对不同异常情况的分类,Exception是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应的处理。 
    Error是指正常情况下,不大可能出现的情况,绝大部分的Error都会导致程序(比如JVM自身)处于非正常状态,不可恢复状态。既然是非正常情况,所以不便于也不需要捕获,常见的比如OutOfMemoryError之类,都是Error的子类。

      Exception又分为可检查(checked)异常和不检查(unchecked)异常,可检查异常在源码里必须显示的进行捕获处理,这里是编译期检查的一部分。前面我们介绍的不可查的Error,是Throwable不是Exception。 
      不检查异常就是所谓的运行时异常,类似NullPointerException,ArrayIndexOutOfBoundsExceptin,ClassCastException之类。

      了解哪些Error,Exception或者RuntimeException?

  • 相关阅读:
    Qt 多线程使用moveToThread
    FFmpeg下载地址
    选择排序
    数据结构和算法之时间复杂度和空间复杂度
    嵌入式动态库查看需要的依赖库
    Q_UNUSED 的使用
    php对csv文件的读取,写入,输出下载操作
    python一个简单的登录
    python的反射
    python类的特性
  • 原文地址:https://www.cnblogs.com/zfyang2429/p/11168379.html
Copyright © 2020-2023  润新知