zoukankan      html  css  js  c++  java
  • core java 7 exception

    MODULE 7 Exceptions
    ----------------------------
    程序正常执行过程中遇到的意外情况

    引发异常的因素:
    1)程序本身的内在因素
    2)外部因素引发的,程序无须关注
    例:数组访问越界异常; 除以0;

    异常发生:
    1)会在发生的位置抛出异常
    2)程序的正常流程会发生改变
    3)对于抛出的异常需要进行捕获处理
    try {
    //正常的程序执行流程
    }catch(异常1){
    //异常1的处理代码
    }catch(异常2){
    //异常2的处理代码
    }finally{
    //无论是否出现异常,都要去执行的
    }


    注意:
    当捕获多个异常是,且这些异常之间存在父子关系,一定要先捕获子异常,再捕获父异常(因为异常的捕获是顺序进行的)


    try{
    //
    }catch(IOException e)){ //小异常
    //deal with IOException
    }catch(Exception e){ //大异常
    //deal wwith Exception
    }

    练习:DivTest.java
    方法:div(int i,int j){} //实现i/j,并打印输出结果
    main:调用div()方法,测试


    异常的传播栈
    -------------------------
    1)异常会在发生的位置一级级向它的上层调用者抛出
    2)在抛出的传播路径上,任何一个点上都可以捕获处理该异常
    3)一旦异常被捕获,则它的上层调用者不再受到影响,但若不处理,最终会抛给JVM,导致程序意外终止

    异常的常用方法:
    1)getMessage() 获取该异常的简单描述信息,返回的是字符串
    2)printStackTrace() 打印出异常完整的传播路径

    练习:DivTest1.java
    main --> div1() --> div2() --> div3() --> div()

    常见异常
    1.java.lang.ArithmeticException 算数异常 除以0时
    2.NullPointerException 空指针异常
    Student s;
    s.display();
    对一个空对象进行操作
    3.ArrayIndexoutofBoundsException


    异常的体系结构
    --------------------
    Object --> Throwable -->
    1.Error
    无视程序本身的错误,而是外部因素引发的,程序直接终止。(如系统崩溃,内存不足等)
    2.Exception
    java中所有的异常类都继承自该类,程序可以进行处理的那些异常
    1)RuntimeException 又叫 unchecked exception
    属于程序无法自我恢复的异常,用try/catch处理无意义,往往是程序的逻辑错误引起的,应尽量避免这类异常的发生
    2)非RuntimeException 又叫 checked exception
    程序中必须要try/catch处理的异常

    从RuntimeException继承的异常都为unchecked
    从Exception或RuntimeException之外的异常继承的异常都是checked


    练习:
    自定义异常类,Account银行账户存款/取款,
    原有的:
    当金额非法是,返回0;
    改造的:
    提示用户金额非法,并告知账户余额和操作金额

    Assertion断言
    ----------------------------
    通过简单的参数设置,控制程序中的调试语句生效或失效

    应用:
    程序中用于临时调试的代码,希望系统发布时控制这些代码失效,而在调试时是代码生效

    关键字:assert
    用法:
    assert 布尔表达式;
    assert 布尔表达式:字符串

    判断布尔表达式:
    结果为true时,程序继续往下执行
    结果为false时,抛出java.lang.AssertionError异常,提示信息就是布尔表达式后面的字符串

    运行时通过参数控制程序中的断言:
    java -ea AssertionTest


    你要坚强,坚强的足以认识自己的弱点;你要勇敢,勇敢的足以面对自己的恐惧;你要堂堂正正。在遇到挫折时能够昂首而不背躬屈膝;你要能够面对掌声,在胜利时能够谦逊而不趾高气扬。真正的伟大直率真诚,真正的贤人虚怀若谷,真正的强者温文尔雅。——萨利·布什(林肯的继母教育林肯)
  • 相关阅读:
    IE Only的userData 简单
    IE userdata 原理 应用 详解 简单
    shell命令执行顺序 简单
    Linux split命令实例 简单
    PHP中调用系统命令的system(),exec(),passthr 简单
    HTML5 LocalStorage 本地存储 简单
    linux 下查看机器配置命令 简单
    《高效能人士的七个习惯》读书笔记 简单
    poj 1042(贪心)
    poj 2485 Highways (prim)
  • 原文地址:https://www.cnblogs.com/jinhuazhe2013/p/4148004.html
Copyright © 2011-2022 走看看