专栏首页人生得意须尽欢Error类异常处理机制
原创

Error类异常处理机制

Error类异常处理机制

  一个方法必须声明所有可能抛出的已检查异常,而未检查异常要么不可控制(Error类),要么就应该避免(RuntimeException 类)。如果方法没有声明所有可能发生的已检查异常,编译器就会给出一个错误信息。当然,除了声明异常外,还可以捕获异常,这样会使异常不被抛到方法之外,也不需要throws规范。   在 Java 应用程序中,异常处理机制为:抛出异常,捕捉异常。

抛出异常:当一个方法出现错误引发异常时,方法创建异常对象并交付运行时系统,异常对象中包含了异常类型和异常出现时的程序状态等异常信息,运行时系统负责寻找处置异常的代码并执行。从方法中抛出的任何异常都必须使用throws子句。 捕获异常:捕捉异常通过try-catch语句或者try-catch-finally语句实现。

  对于运行时异常、错误或已检查异常,Java技术所要求的异常处理方式有所不同。   由于运行时异常的不可查性,为了更合理、更容易地实现应用程序,Java规定,运行时异常将由Java运行时系统自动抛出,允许应用程序忽略运行时异常。   对于方法运行中可能出现的Error,当运行方法不欲捕捉时,Java允许该方法不做任何抛出声明。因为,大多数Error异常属于永远不能被允许发生的状况,也属于合理的应用程序不该捕捉的异常。   对于所有的已检查异常,Java规定:一个方法必须捕捉,或者声明抛出到方法之外。也就是说,当一个方法选择不捕捉已检查异常时,它必须声明抛出异常。能够捕捉异常的方法,需要提供相符类型的异常处理器。所捕捉的异常,可能是由于自身语句所引发并抛出的异常,也可能是由某个调用的方法或者Java运行时系统等抛出的异常。也就是说,一个方法所能捕捉的异常,一定是Java代码在某处所抛出的异常。简单地说,异常总是先被抛出,后被捕捉的。   总体来说,Java规定:对于已检查异常必须捕捉、或者声明抛出,允许忽略不可查的RuntimeException和Error。

捕获异常

try 块:用于捕获异常。其后可接零个或多个catch块,如果没有catch块,则必须跟一个finally块。 catch 块:用于处理try捕获到的异常。 finally 块:无论是否捕获或处理异常,finally块里的语句都会被执行。当在try块或catch块中遇到return语句时,finally语句块将在方法返回之前被执行。在以下4种特殊情况下,finally块不会被执行: 1)在finally语句块中发生了异常。 2)在前面的代码中用了System.exit()退出程序。 3)程序所在的线程死亡。 4)关闭CPU。

    public static void main(String[] args) {
        try {
            int i = 10/0;
              System.out.println("i="+i); 
        } catch (ArithmeticException e) {
              System.out.println("Caught Exception"); 
            System.out.println("e.getMessage(): " + e.getMessage()); 
            System.out.println("e.toString(): " + e.toString()); 
            System.out.println("e.printStackTrace():");
            e.printStackTrace(); 
        } finally {
            System.out.println("run finally");
        }
    }

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 异常处理机制

    1 /* 2 RuntimeException 3 错误的类型转换 4 数组下标越界 5 空指针访问 6 IOExeption 7 从一个不存在...

    Gxjun
  • JAVA中的异常处理机制及异常分类

    JAVA的异常处理机制:如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时,这个方法会立刻退...

    用户7886150
  • Java异常处理机制

    本文从Java异常最基本的概念、语法开始讲述了Java异常处理的基本知识,分析了Java异常体系结构,对比Spring的异常处理框 架,阐述了异常处理的基本原则...

    用户7886150
  • java 异常处理机制

    在看完Java编程思想的 异常处理机制 这章内容之后,得出的一些总结,是杂乱的,并没有给出一些解释,凑合看吧

    Theone67
  • Java 异常处理机制

    Exception 和Error 都是继承 Throwable 类,在 java 只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(cat...

    王小明_HIT
  • python常见异常处理机制

    场景:由于没有except捕获异常,所以不论是否异常,finally中的语句都会执行,若存在异常,finally后面的代码不会执行,反之则执行。

    小雯子打豆豆
  • Java 的异常处理机制

    Single
  • Java的异常处理机制

    异常 异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java通 过API中T...

    葆宁
  • SpringMVC异常的处理机制

    **系统的dao、service、controller出现异常都通过throws Exception向上抛出,最后由springmvc前端控制器交由异常处理器进...

    一只胡说八道的猴子
  • SpringMVC异常的处理机制

    其本质还是把异常交给SpringMVC框架来处理 系统的dao、service、controller出现异常都通过throws Exception向上抛出,最...

    一只胡说八道的猴子
  • Java 中的异常处理机制

    生活中的异常:  不能够完整而顺利的完成一些工作  根据不同的异常进行相应的处理,而不会就此终端我们的生活 引出:   异常处理:   方式:     ...

    房上的猫
  • SpringMVC全局异常处理机制

    SpringMVC除了可以做URL映射和请求拦截外,还可以做全局异常的处理。全局异常处理可能我们平时比较少机会接触,但是每个项目都肯定会做这个处理。比如在上一间...

    java技术爱好者
  • elasticsearch ERROR: bootstrap checks failed 异常处理

    修改XX-nproc.conf  (不同机器XX不一样,可先到 cd /etc/security/limits.d/ 查看下)

    用户1409099
  • 深入理解java异常处理机制

     1. 引子        try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,...

    大闲人柴毛毛
  • 深入理解java异常处理机制

    http://blog.csdn.net/hguisu/article/details/6155636

    bear_fish
  • 深入理解 java 异常处理机制

    原文 https://blog.csdn.net/hguisu/article/details/6155636

    猿芯
  • java异常处理机制(try-catch-finally)

    /* * try和finally内的代码块是肯定会执行的 * catch中的代码块只有抛出异常时才会执行(如果有多个catch,只会执行一个,而且抛出的异常...

    用户3030674
  • 编程中的异常处理机制

    在马克思主义政治经济学中,剥削指的是生产者(无产者)为所有者(资本家)以低于实际补偿的价格进行工作。无产者被迫出售自己的劳动,而不是一定量的劳动,以获得工资,维...

    sibenx
  • .NET----错误和异常处理机制

      错误的出现并不总是编写程序的人的原因,有时应用程序会因为应用程序的最终用户引发的动作或运行代码的环境发生错误。无论如何,我们都应预测应用程序中出现的错误,并...

    小世界的野孩子

扫码关注云+社区

领取腾讯云代金券