码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 2022-07-29 java之异常


    目录
    • 一、异常
      • 1. 异常的概念
      • 2. 异常体系
      • 3.图解异常处理的流程
      • 4.异常处理
        • 1.抛出异常throw
        • 2.捕获异常try{}catch{}
        • 3 声明异常throws
        • 4. finally代码块
        • 5.一次捕获多个异常多次处理的方式
      • 5.自定义异常实例
      • 6.面试题

    一、异常

    1. 异常的概念

    异常,是不正常的意思 ,程序中执行过程中,出现了非正常情况,严重会导致JVM的非
    正常停止。
    在Java面向对象编程中,把异常视为一个对象,可以把异常定义成一个类。
    产生异常就是要创建一个异常对象并抛出一个异常对象。
    异常并不是指语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运
    行。

    2. 异常体系

    异常的根类是:java.lang.Throwsable
    其下有两个类:java.lang.Error和java.lang.Exception,,平时异常就是指Exception

    3.图解异常处理的流程

    在这里插入图片描述

    4.异常处理

    1.抛出异常throw

    在Java中,提供一个throw关键字,它用来抛出异常对象

    • 创建一个异常对象 throw new 异常对象
    • 需要将这个异常通知给调用者,怎么告诉对方,通过throw就可以完成。

    2.捕获异常try{}catch{}

    3 声明异常throws

    声明异常:将问题标识出来,给调用者,如果不对异常立即处理,你需要声明出,交给
    调用者来处理。

    4. finally代码块

    finally:不管程序是不是出异常了,finally块中代码必须执行
    无论什么时侯代码必须最终执行
    一般在创建流,使用流之后 ,用来关闭流

    5.一次捕获多个异常多次处理的方式

    try{
    read("b.txt");
    }catch (FileNotFoundException e){
    e.printStackTrace();
    }catch (IOException e){
    e.printStackTrace();
    }catch (Exception e){
    e.printStackTrace();
    }
    finally {
    System.out.println("不管理程序怎样,
    这里都将被执行");
    }
    

    5.自定义异常实例

    1. 自定义一个编译期异常,自定义类,继承于Exception
    2. 自定义一个运行期异常类,并继承于 RuntimeException

    6.面试题

    面试题1: throws 和 throw的区别(记忆)

    throws

    • 用在方法声明之后,跟的是异常类名
    • 表示声明异常,由该方法的调用者来处理
    • 表示出现该异常可能性,并不一定会发生异常

    throw

    • 用在方法体内,跟的异常对象名(new Exxx())
    • 表示抛出异常,由方法体内的语句来处理
    • 执行throw 一定抛出了某种异常

    位置不同:
    throws 用方法上,后面跟的是异常类,可以跟多个;
    而 throw 用在方法内,后面跟的 是异常对象。 throw new ...

    功能不同:
    throws 声明 异常,表示出现异常的一种可能性,并不一定会发生这些异常;throw 则是抛出
    了异常,
    执行 throw 则一定抛出了某种异常对象

    面试题2: 编译期异常 和 运行时异常的区别(记忆)

    编译期异常(checked)异常:

    • 在编译时期,就会检查,如果没有处理异常,则编译失败
    • 都是Excetion类及其子类

    运行期异常(runtime)异常:

    • 在运行时期,检查异常,在编译时期不会报错
    • 都是RuntimeException类及其子类

    面试题3:Java的异常体系Error和 Exception的区别和联系
    在这里插入图片描述

  • 相关阅读:
    逻辑回归-癌症病预测与不均衡样本评估
    CSS 圆角渐变边框
    Google身份验证器Google Authenticator的java服务端实现
    阿里妈妈佣金转换API接口
    【Java面试】第一章:P5级面试
    自然灾害数据:中国台风数据集(更新至2022.3)
    windows安装composer并更换国内镜像
    二叉搜索树
    数据库系统原理与应用教程(075)—— MySQL 练习题:操作题 151-159(十九):综合练习
    代码规范问题,“static“ base class members should not be accessed via derived types
  • 原文地址:https://www.cnblogs.com/beibei725/p/16534015.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号