异常的分析

Throwable: 总父类,表示不正常的情况
2. Error: 错误

  • 无法解决也无法提前避免的问题
  • 通常由硬件设备或内存等问题导致
  1. Exception:异常
    • 可以解决或提前避免的问题
    • 通常由代码导致
    • 分类:
      • RuntimeException:运行时异常,也称为未检查异常、未检异常等
        • 编译不报错,运行报错
        • 可以处理也可以不处理
        • java.lang.ArrayIndexOutOfBoundsException:数组下标越界
        • java.lang.StringIndexOutOfBoundsException:字符串下标越界异常
        • java.lang.IndexOutOfBoundsException:下标越界异常
        • java.lang.NullPointerException:空指针异常
        • java.lang.ClassCastException:类型转换异常
        • java.lang.NumberFormatException:数据类型转换异常
        • java.lang.Arithm eticException:数学运算异常
        • 都来自于java.lang包
      • 非RuntimeException: 非运行时异常,也称为已检查异常、已检异常等
        • 编译就会报错
        • 必须处理
        • 只要不是运行时异常,就一定是非运行时异常

异常的产生

  1. 自动产生: 当运行到有问题的代码时会自动产生异常,程序终止

  2. 手动产生:

    throw 异常对象;
    
    • 位置:方法内部
    • 作用:当程序执行到该语句,则会抛出一个异常对象,使程序强制终止
    • 使用: 同一直属范围内,下方不可存在其他有效语句
      • 无法执行

程序终止执行:

  1. 代码正常运行结束
  2. 执行到异常
  3. 执行到return;

异常的处理

  1. 上抛异常: 消极处理

    访问修饰符 返回值类型 方法名(形参列表)throws 异常类名1,异常类型2,..{}
    
    • 作用: 将当前方法的内部异常向上抛至调用者,当前方法无法处理该异常. 此时异常并不会被根治,如果异常最终上抛至虚拟机,则仍然会导致程序终止
    • 使用:
      1. 上抛父类异常也可以处理内部的子类异常
      2. 调用者需要处理解决的异常类型由throws上抛的类型决定

    throw和throws的区别:

    1. 位置:throw写在方法内部,throws写在方法声明处
    2. 作用:throw是抛出制造异常,throws是上抛解决异常
  2. 捕捉并解决异常:积极处理

    try{//有可能出现异常的代码
    }catch(有可能匹配的异常类名 引用名){// 对应的处理方案
    }
    
    • 特点:可以根治异常问题,如果异常正常匹配成功,则程序会继续向下执行
    • 使用:
      1. 当try中内容出现异常时,会立即开始匹配catch块,如果catch块匹配成功则程序继续执行,如果失败,则异常仍会出发程序仍然终止
      2. 可以存在多个catch块,自上而下的进行匹配
      3. 一个try-catch结构至多执行一个catch块
      4. 父类异常类型可以兼容匹配子类异常
      5. 父类异常需要写在子类异常之下
      6. 为了保证匹配一定成功,通常会在catch最下方匹配一个Exception
      7. 如果发生的是非运行时异常,则catch块无法捕捉与其无关的非运行时异常,编译报错
    • 异常信息处理:
      1. String getMessage():获取异常的详细信息
      2. void printStackTrace():打印输出异常的追栈(追踪)信息(异常类型+异常的详细信息+异常的触发位置)
  3. finally块

    • 特点:无论如何都会执行,通常用来关闭资源

    • 语法:

      try{}catch(){}finally{}
      
    • 使用;

      1. 必须与try结合使用,无法与catch单独结合
      2. 当try-catch-finally中出现return语句冲突时,优先执行finally

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/577035.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++11(上):新特性讲解

C11新特性讲解 前言1.列表初始化1.1{ }初始化1.2std::initializer_list 2.类型推导2.1 auto2.2 typeid2.3 decltype 3.范围for4.STL的变化4.1新容器4.2容器的新方法 5.右值引用和移动语义5.1 左值引用和右值引用5.2 左值引用与右值引用比较5.3 右值引用的使用场景5.4 右值、左值…

浙江大唐乌沙山电厂选择ZStack Cloud打造新一代云基础设施

浙江大唐乌沙山电厂选择云轴科技ZStack Cloud云平台为其提供高性能、高可用的云主机、云存储和云网络,构建了简单、稳定、安全、高效的云基础设施;通过ZStackCloud为其提供可视化服务编排、多租户自服务等模块,帮助电厂提高IT资源利用率&…

解决FTP传输慢的问题(ftp传输慢为什么)

在企业运营中,使用FTP进行文件或数据传输是相当普遍的做法。尽管FTP是一种传统的文件传输工具,但在实际应用中,我们可能会面临传输速度缓慢的问题,这不仅影响工作效率,还浪费时间。为了解决这一问题,我们可…

泛微OA xmlrpcServlet接口任意文件读取漏洞(CNVD-2022-43245)

CNVD-2022-43245 泛微e-cology XmlRpcServlet接口处存在任意文件读取漏洞&#xff0c;攻击者可利用漏洞获取敏感信息。 1.漏洞级别 中危 2.影响范围 e-office < 9.5 202201133.漏洞搜索 fofa 搜索 app"泛微-OA&#xff08;e-cology&#xff09;"4.漏洞复现 …

vue 项目/备案网页/ip网页打包成 apk 安装到平板/手机(含vue项目跨域代理打包成apk后无法访问接口的解决方案)

下载安装HBuilder X编辑器 https://www.dcloud.io/hbuilderx.html 新建 5APP 项目 打开 HBuilder X&#xff0c;新建项目 此处项目名以 ‘test’ 为例 含跨域代理的vue项目改造 若 vue 项目中含跨域代理&#xff0c;如 vue.config.js module.exports {publicPath: "./&…

Python 查杀进程的方法封装

一、前置说明 在自动化测试中,经常需要启动进程和关闭进程,本文介绍几种常用的查杀进程的方式:kill_process_by_pid、kill_process_by_port、kill_process_by_name、kill_process_by_window_name。 二、代码实现 utils/os_util.py import os import platform import log…

【C++】开源:FTXUI终端界面库配置使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍FTXUI终端界面库配置使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c…

【文本处理】正则表达式

一、简介 正则表达式&#xff0c;又称规则表达式,&#xff08;Regular Expression&#xff0c;在代码中常简写为regex、regexp或RE&#xff09;&#xff0c;是一种文本模式&#xff0c;包括普通字符&#xff08;例如&#xff0c;a 到 z 之间的字母&#xff09;和特殊字符&…

单例模式学习

单例模式是应用最广的设计模式之一&#xff0c;也是程序员最熟悉的一个设计模式&#xff0c;使用单例模式的类必须保证只能有创建一个对象。 一、为什么要使用单例&#xff1f; 在开发过程中&#xff0c;很多时候一个类我们希望它只创建一个对象&#xff0c;比如&#xff1a;线…

springboot(ssm智慧校园之家长子系统 智慧校园系统Java系统

springboot(ssm0智慧校园之家长子系统 智慧校园系统Java系统 开发语言&#xff1a;Java 框架&#xff1a;ssm/springboot vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&#xff08;或8.0&#xff09…

苹果发布了一个Ferret(雪貂)多模态大模型,在一个无人问津的角落被一位博主捞起来

苹果12月14日释放了一个名为Ferret的多模态大语言模型&#xff0c;有的翻译是雪貂&#xff0c;有的是法学硕士&#xff0c;要我说&#xff0c;还是叫雪貂吧&#xff0c;接地气亲民&#xff0c;将来犯蠢的时候出来发张雪貂的可爱表情包作公关就完事了&#xff0c;你个法学硕士到…

C语言—每日选择题—Day63

指针相关博客 打响指针的第一枪&#xff1a;指针家族-CSDN博客 深入理解&#xff1a;指针变量的解引用 与 加法运算-CSDN博客 第一题 1. 设C语言中&#xff0c;一个int型数据在内存中占2个字节&#xff0c;则unsigned int型数据的取值范围为 A&#xff1a;0~255 B&#xff1a;0…

mysql8.x版本_select语句源码跟踪

总结 源码基于8.0.34版本分析&#xff0c;函数执行流程含义大致如下&#xff1a; do_command 方法从连接中读取命令并执行&#xff0c;调用 dispatch_command 对命令进行分发。dispatch_command 调用 mysql_parse 对命令进行解析&#xff0c;如果遇到一条语句用 ; 分隔多条命…

CGAL中三角形曲面网格近似

1、介绍 此软件包实现了变分形状近似&#xff08;VSA&#xff09;方法&#xff0c;通过更简单的表面三角形网格来近似输入表面网格。该算法的输入必须是&#xff1a; 三角形分割&#xff1b;组合2流形 输出是一个三角形汤&#xff0c;可以构建成多边形曲面网格。 给定一个输入曲…

linux操作系统——进程(二) 进程状态

进程状态 你真正的理解了进程的状态嘛?特别是操作系统教材中学过的进程状态&#xff0c;你真的理解了吗&#xff1f; 教材上关于进程状态的说明 下面我们以下图为例: 这是教材上对操作系统的说明&#xff0c;但是它并没有详细的说明&#xff0c;这些状态具体是什么&#xf…

大语言模型说明书

在浩瀚的信息宇宙中&#xff0c;大语言模型如同一颗璀璨的星星正在熠熠生辉。21世纪以来&#xff0c;人工智能可谓是飞速发展&#xff0c;从简单的神经网络到大语言模型、生成式AI&#xff0c;这并非仅仅是一种技术的进步&#xff0c;更是人类智慧的飞跃。大语言模型不仅仅是语…

获取请求的真实ip

一、node代码 const app express(); app.get("/abc", (req, res) > {const forwardedForHeader req.get("X-Forwarded-For");const realIpHeader req.get("X-Real-IP");let realIp null;if (forwardedForHeader && forwardedFor…

用makeself.sh脚本来制作一键发布文件(.run)

----------------------------------------------------------- author: hjjdebug date : 2023年 12月 25日 星期一 15:59:06 CST description: 用makeself.sh脚本来制作一键发布文件(.run) ---------------------------------------------------------- 我看到nvidia 发布驱动…

使用easyexcel对导出表格添加合计行

文章目录 一、背景二、实现1、写法一2、写法二 三、遇到的问题四、参考 一、背景 近期开发的一个新功能需要导出和前端展示样式一致的统计表格&#xff0c;而前端使用的elementui的table组件&#xff0c;show-summary属性选择后可以自动计算。后端导出时其他单元格与返回前端展…

华为数通方向HCIP-DataCom H12-831题库(多选题:241-249)

第241题 (NEW) 以下哪些操作可能会影响客户网络的正常运行? A、从设备上下载日志 B、软件升级 C、路由协议配置变更 D、debug核心交换机上转发的所有IP报文 答案:ABCD 解析: 第242题 对于防火墙的默认安全区 Trust 和 Untrust 的说法,正确的有 A、从 Trust 区域访问 Untr…