废话少说,今天来看看Java的反常处理。
  Java的反常
  议论Java的反常之前,先看看反常处理程序能带来什么优点?明显的优点是下降过错处理代码的复杂度。Java中的反常处理机制能帮助开发者简化处理反常的本钱,假如产生反常了能够有两种方式处理,第一种为捕捉反常并测验康复,比方网络反常,超时反常等,另一种便是向高层调用抛出反常。
  Java中的反常处理机制便是用要害字try-catch-finally,throw或许throws处理,下面就分别说明使用方:
  Try代码块用于监听程序是否呈现问题,也便是监听有可能产生问题的代码块Catch捕捉反常,能够指定特定反常进行捕捉Finally要害字后面的代码块,在try-catch后总会执行,用来封闭文件,封闭连接等。Throw抛出反常,假如咱们不想处理这个反常,能够通过throw抛出,也能够转换成新的反常抛出Throws给办法签名指定可能抛出的反常。Java的反常的基类是Throwable,这个类完成了Serializable接口,因此是能够序列化的,而且提供了存储和打印执行反常栈的信息。
  Throwable有两个子类完成类,一个是Error,另一个便是Exception。Error代表不行康复的过错,属于JVM内部的过错,比方体系内存溢出了;Exception表明体系呈现了一些问题,但是还不至于体系完全不行用,通过重试或许改动输入参数有能够康复的反常,有包括查看反常和非查看反常。
  查看反常(ChekedEcxception):查看反常承继于Exception,这类反常假如不处理在编译期间就会报错,比方数据库连接反常DataAccessException,文件不存在反常FileNotFoundException,IO反常IOException等。非查看反常:程序运转中产生的反常,在程序的编译时分能够疏忽的反常,比方RuntimeException,或许承继与RuntimeException的反常。
  查看和非查看反常
  以下是一个读取文件的例子,在读取文件的时分会产生FileNotFoundExcepton和IOException,咱们都进行了捕捉,最终在finally中封闭了翻开的文件。
  一个自界说反常实例
  自界说反常
  在开发中发现JDK提供的反常无法满足现在的需求,能够通过集成已有的反常类来自界说反常。
  在自界说反常的时分,是界说查看反常仍是非查看反常?以下是个人见解,
  假如一个问题需求显现的处理,比方调用其他体系接口的时分,服务不行用,就可界说为查看反常,自界说的查看反常是要求在编程的时分有必要处理的。
  业务的反常通过通过承继RuntimeException来界说非查看反常,比方参数过错,成果找不到等,这类反常都是在运转期间产生的,咱们不用在调用的地方显现的处理,能够在一个地方统一的处理。
  下面就定一个查看参数的反常类承继于RuntimeException,界说一个过错code用来记载过错的代码。

posted on 2020-06-25 16:09  林口  阅读(173)  评论(0编辑  收藏  举报