4、Java中final,finalize,finally关键字的区别?


一、异常体系

======

error/Exception

error:是指程序无法处理的错误,例如oom

Exception:程序可以处理的,分为运行时异常(RuntimeException)和非运行时异常

java调取大华SDK 大华java面试题_Java

二、异常使用

======

1、运用Java异常处理机制


  • a、tyr…catch语句
  • b、finally语句:任何情况下都必须执行的代码
  • c、throws子句:声明可能会出现的异常
  • d、throws语句:抛出异常

2、异常处理的原理


  • a、Java虚拟机用方法调用栈(method invocation stack)来跟踪每个线程中一系列的方法调用过程
  • b、如果在执行方法的过程中抛出异常,则Java虚拟机必须找到能捕获该异常的catch代码块
  • c、当Java虚拟机追溯到调用栈的底部的方法时,如果仍然没有找到处理该异常的代码块,此时按照两个步骤处理:第一是打印来自该方法调用栈的异常信息,二是判断该线程是否是主线程,如果不是,就终止该线程,其他线程继续运行。

3、异常流程的运行过程


有四种场景

a、第一种场景:finally语句不被执行的唯一情况就是先执行了用于终止程序的System.exit()方法

b、第二种场景:return语句用于退出本方法

c、第三种场景:finally代码块虽然return语句之前就被执行,但finally代码块不能通过重新给变量赋值的

方式改变return语句的返回值

d、第四种场景:建议不要在finally代码块中使用return语句