zoukankan      html  css  js  c++  java
  • Java异常处理摘记

    Java异常机制主要依赖于try、catch、finally、throw、throws五个关键字。

    1.try:它里面放置可能引发异常的代码

    2.catch:后面对应异常类型和一个代码块,用于表明该catch块用于处理这种类型的代码块,可以有多个catch块。

    3.finally:主要用于回收在try块里打开的物力资源(如数据库连接、网络连接和磁盘文件),异常机制总是保证finally块总是被执行。只有finally块,执行完成之后,才会回来执行try或者catch块中的return或者throw语句,如果finally中使用了return或者   throw等终止方法的语句,则就不会跳回执行,直接停止。

    4.throw:用于抛出一个实际的异常,可以单独作为语句使用,抛出一个具体的异常对象。

    5.throws:用在方法签名中,用于声明该方法可能抛出的异常。

    Java的异常分为两种,checked异常(编译时异常)和Runtime异常(运行时异常)

    1.  java认为checked异常都是可以再编译阶段被处理的异常,所以它强制程序处理所有的checked异常,而Runtime异常无须处理,java程序必须显式处理checked异常,如果程序没有处理,则在编译时会发生错误,无法通过编译。

    2. checked异常体现了java设计哲学:没有完善处理的代码根本不会被执行,体现了java的严谨性,对于构造大型、健壮、可维护的应用系统而言,错误处理是整个应用需要考虑的重要方面。Java异常处理机制,在程序运行出现意外时,系统会生成一个Exception对象,来通知程序,从而实现将“业务功能实现代码”和“错误处理代码”分离,提供更好的可读性。如果执行try块里的业务逻辑代码时出现异常,系统会自动生成一个异常对象,该异常对象被提交给运行环境,这个过程被称为抛出(throw)异常。Java环境收到异常对象时,会寻找合适的catch块,如果找不到,java运行环境就会终止,java程序将退出。不同的catch块,视为了针对不同的异常类,提供不同的处理方法。

    对于错误处理机制,主要有如下的两个缺点:

    1.无法穷举所有异常情况:因为人类的知识是有限的,异常情况总比可以考虑到的情况多,总有漏网之鱼

    2.错误处理代码和业务实现代码混杂严重影响程序的可读性,会增加程序维护的难度。

    1.使用try...catch捕获异常

    java提出了一种假设,如果程序可以顺利完成,那么一切正常,把系统的业务实现代码放在try块中定义,所有的异常处理逻辑放在catch块中进行处理。

    使用finally回收资源

     有时候,程序在try块里面打开了一些物力资源(比如数据库连接,网络连接好磁盘文件等),这些物理资源都必须显式回收。

    因为:java的垃圾回收机制不会回收任何的物理资源,垃圾回收机制只回收堆内存中对象所占用的内存。

    try
    {
         //业务实现逻辑
         ...
    }
    catch(SubException e)
    {
         //异常处理快1
         ...
    }
    catch(SubException2 e)
    {
         //异常处理快2
         ...
    }
         ...
    finally
    {
        //资源回收块
        ...
    }
  • 相关阅读:
    C++学生成绩管理系统
    蓝桥杯算法训练 最大最小公倍数
    蓝桥杯基础练习 完美的代价
    vim编辑器的使用技巧
    C语言中static关键字的用法
    在linux环境下编译运行OpenCV程序的两种方法
    Linux中gcc编译器的用法
    浅谈Java中的hashcode方法
    读CopyOnWriteArrayList有感
    徐汉彬:Web系统大规模并发——电商秒杀与抢购(技术实现)
  • 原文地址:https://www.cnblogs.com/nxjblog/p/11388380.html
Copyright © 2011-2022 走看看