• Java日志第15天 2020.7.20


    第八章 程序的异常

    8.1 异常声明,捕获和处理

    异常是组织方法继续执行的问题,可能导致程序失败或出现程序崩溃。

    8.1.1 异常机制概述

    编译错误:编写的程序存在语法问题,未能通过编译

    运行错误:在程序运行过程中产生的错误

    1.什么是异常

    程序运行过程中遇到的非致命的,通过某种修正后还能执行的错误成为异常。

    2.产生异常的几种情况

    (1)虚拟机检测到的异常

    *表达式的计算违反了Java的语义。

    *超出了某些资源限制,如使用了太多内存。

    (2)Java程序代码中的throw语句被执行

    (3)异步异常发生

    *Thread的stop方法被调用

    *Java虚拟机内部错误发生

    3.异常处理的关键字

    Java异常处理通过5个关键字来管理,它们是try、catch、throw、throws、finally。

    Java中的异常类有一个父类叫做Throwable,有两个子类为Error、Exception。

    (1)Error异常

    Error指的是错误,通常不可以通过代码来解决。在程序中用户不用那个捕获Error及任何Error子类的异常。

    Error包括linkageError(综合错误)与VitualmachineError(虚拟机错误)两个子类

    (2)Exception异常

    Exception类型的异常有分为运行时异常和非运行时异常。

    *运行时异常

    继承自RuntimeException

    Java编译器允许程序不做处理

    *非运行时异常

    在java.lang类库中定义

    Java编译器要求程序必须捕获或声明抛弃这种异常。

    8.1.2 在Java中如何进行异常处理

    1.Try...catch...finally

    捕获命名为属于异常类的异常,并调用方法处理它。其中的finally无论有无异常都会执行。

    try{  //监视

      可能发生一张的代码块;

    }

    catch(异常类型 异常对象名){ //捕获并处理异常

      异常处理代码块;

    }finally{

      //最终执行

    }

     

     当finally带return语句时:

     

     *因为finally语句总是执行,所以结果会是10,如果将finally中的return去掉,结果就会是5。

    *finally语句可以省略

    *catch语句可以有多个,并且如果用户要捕获Exception,则将Exception放在最后,不能放在前面,否则会报错。(如果要捕获异常,异常范围要按照从小到大顺序叠放)

    示例:catch多个异常

     一个try代码块可以嵌入到另一个try代码块中。如果内部try代码块产生的异常没有被内部try代码块相关的catch捕获,就会传到外部try代码块。

    示例:try语句嵌入多个try语句

     2.使用throws抛出异常

    throws子句方法的基本形式如下:

    [修饰符] 返回类型 方法名 (参数1, 参数2, ...) throws 异常列表()

    throws子句可以同时指明多个异常,说明该方法将不对这些异常进行处理,而是声明抛弃它们。

     3.通过throw抛出异常

    throw抛弃的异常必须是Throwable或其子类的实例,其基本形式如下:

    throw 异常名

    throw关键字主要是用在try块中,用来说明已经发生的异常情况。throw关键字后面跟随一个异常对象,用来说明发出的异常类型。

     4.自定义异常

    哇哇哇!!这些东西真的是看不懂了啊,第六章、第八章真的好难,明天看视频,看这本书真的是看不懂了。

  • 相关阅读:
    Computer Science Theory for the Information Age-4: 一些机器学习算法的简介
    Computer Science Theory for the Information Age-3: 高维空间中的高斯分布和随机投影
    Computer Science Theory for the Information Age-2: 高维空间中的正方体和Chernoff Bounds
    PrestaShop 1.7 如何添加网站的跟踪代码
    PrestaShop 1.7 创建税单的时候中文显示方框
    PrestaShop 1.7 首页菜单如何进行调整
    PrestaShop 1.7 如何启用 debug 模式
    PrestaShop 1.7.6 在访问分类的时候提示错误
    PrestaShop 1.7 安装完成后后台能进去,前台不行
    Maven 服务器如何设置用户名和密码
  • 原文地址:https://www.cnblogs.com/Gazikel/p/13347743.html
Copyright © 2020-2023  润新知