美文网首页Java 杂谈Java学习笔记
6.1-全栈Java笔记:异常处理机制的概念

6.1-全栈Java笔记:异常处理机制的概念

作者: 全栈JAVA笔记 | 来源:发表于2017-06-30 09:41 被阅读54次

    异常问题

    实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据可能是空的等。我们的程序再跑着,内存或硬盘可能满了等等。

    软件程序在运行过程中,非常可能遇到刚刚提到的这些异常问题,我们叫异常,英文是:Exception,意思是例外。这些,例外情况,或者叫异常,怎么让我们写的程序做出合理的处理,安全的退出,而不至于程序崩溃。

    如果我们要拷贝一个文件,在没有异常机制的情况下,我们需要考虑各种异常情况,伪代码如下:

    【示例1】伪代码使用if处理程序中可能出现的各种情况

    //将d:/a.txt复制到e:/a.txt

    if("d:/a.txt"这个文件存在){

        if(e盘的空间大于a.txt文件长度){

           if(文件复制一半IO流断掉){

               停止copy,输出:IO流出问题!

           }else{

               copyFile("d:/a.txt","e:/a.txt");

           }

        }else{

           输出:e盘空间不够存放a.txt!

        }

    }else{

        输出:a.txt不存在!

    }

    这种方式,有两个坏处:

    1.  逻辑代码和错误处理代码放一起!

    2.  程序员本身需要考虑的例外情况较复杂,对程序员本身要求较高!

    那么,我们如何解决应对异常情况呢?JAVA的异常机制给我们提供了方便的处理。如上情况,如果是用JAVA的异常机制来处理,示意代码如下(仅限示意,不能运行):

    try {

        copyFile("d:/a.txt","e:/a.txt");

    catch   (Exception e) {

        e.printStackTrace();

    }

    异常机制本质

    就是当程序出现错误,程序安全退出的机制

    异常(Exception)的概念

    我们开始看我们的第一个异常对象,并分析一下异常机制是如何工作的。

    【示例2】异常的分析

    public class Test {

        public static void main(String[] args) {

           int i=1/0;

           System.out.println(i);

        }

    }

    示例2 运行效果图 

    Java是采用面向对象的方式来处理异常的。处理过程:

    1.抛出异常:在执行一个方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径,并把异常对象提交给JRE。

    2.捕获异常:JRE得到该异常后,寻找相应的代码来处理该异常。JRE在方法的调用栈中查找,从生成异常的方法开始回溯,直到找到相应的异常处理代码为止。

    本节课我们先聊到这儿,明天我们继续聊……


    「全栈Java笔记」是一部能帮大家从零到一成长为全栈Java工程师系列笔记。笔者江湖人称 Mr. G,10年Java研发经验,曾在神州数码、航天院某所研发中心从事软件设计及研发工作,从小白逐渐做到工程师、高级工程师、架构师。精通Java平台软件开发,精通JAVAEE,熟悉各种流行开发框架。

    笔记包含从浅入深的六大部分:

    A-Java入门阶段

    B-数据库从入门到精通

    C-手刃移动前端和Web前端

    D-J2EE从了解到实战

    E-Java高级框架精解

    F-Linux和Hadoop 

    相关文章

      网友评论

        本文标题:6.1-全栈Java笔记:异常处理机制的概念

        本文链接:https://www.haomeiwen.com/subject/zwjbcxtx.html