12.Java异常

一、

    Java中异常主要分为Error类,Exception类,它们都继承于Throwable

    Error包括虚拟机错误线程死锁,一旦Error发生,程序终止;

    Exception为常说的“异常”,Exception主要分为两类:非检查异常(RuntimeException)和检查异常。

      1)非检查异常(RuntimeException)一般包含以下:空指针异常,数组下标越界异常,类型转换异常,算数异常。RuntimeException异常会由java虚拟机自动抛出并自动捕获,此类异常的出现绝大数情况是代码本身有问题应该从逻辑上去解决并改进代码。

      2)检查异常,引起该异常的原因多种多样,比如说文件不存在、或者是连接错误等等。跟它的“兄弟”RuntimeException运行异常不同,该异常我们必须手动在代码里添加捕获语句来处理该异常,这也是我们学习java异常语句中主要处理的异常对象。

      一般有:IOExceptionSQLException

二、

   try-catch-finally

    1)try块:负责捕获异常,一旦try中发现异常,程序将执行catch

块中的异常处理程序。

    2)catch块:如何处理?比如发出警告:提示、检查配置、网络连接,记录错误等。执行完catch块之后程序跳出catch块,继续执行后面的代码。

    3)finally:最终执行的代码,用于关闭和释放资源。

    一般需要注意的点:

    1、不管有木有出现异常或者try和catch中有返回值return,finally块中代码都会执行;

  2、finally中最好不要包含return,否则程序会提前退出,返回会覆盖try或catch中保存的返回值。

  3.  e.printStackTrace()可以输出异常信息。

  4.  return值为-1为抛出异常的习惯写法。

  5.  如果方法中try,catch,finally中没有返回语句,则会调用这三个语句块之外的return结果。

  6.  finally 在try中的return之后 在返回主调函数之前执行。

三、throwthrows关键字

       java中的异常抛出通常使用throwthrows关键字来实现

       throw:将产生的异常抛出,是抛出异常的一个动作。

          一般会用于程序出现某种逻辑时程序员主动抛出某种特定类型的异常。如:

          throw new NumberFormatException();

       throws:声明将要抛出何种类型的异常。

           public void jump()throws 异常列表 {}

        区别:

           1.throws出现在方法函数头;而throw出现在函数体。

           2.throws表现出异常的一种可能性,并不一定会发生这些异常。

           3.两者都是消极处理异常的方式。

猜你喜欢

转载自www.cnblogs.com/pfzhu/p/10316451.html
今日推荐