JavaSE之异常专题

JavaSE之异常专题

1. java的异常体系

  • Java.lang.Throwable:java中的所有错误和异常的父类
  • Error:代表系统级别错误(属于严重问题),也就是说系统一旦出现问题,sun公司会把这些问题封装成Error对象给出来
  • Exception:叫异常,它代表的才是我们程序可能出现你的问题,多以我们程序员通常会用Exception及其子类来封装程序出线的问题
    • RuntimeException:运行时异常(RuntimeException及其子类),编译阶段不会出现错误提醒,运行时出线的异常(如:数组索引越界异常)
    • 其他异常(编译时异常):编译阶段就会出现错误提醒的。(如日期解析错误)

2. 异常的基本处理

  • 抛出异常(throws)

    • 在方法上使用throws关键字,可以将方法内部出现的异常跑出去给调用者处理

      方法 throws 异常1, 异常2, 异常3 ..{...
      }// 推荐方式
      方法 throws Exception{
      }
      // Exception代表可以捕获一切异常
      
  • 捕获异常(try…catch)

    • 直接捕获程序出现的异常

      try{// 监视可能出现异常的代码!
      }catch(异常类型1 变量){// 处理异常
      }catch(异常类型2 变量){// 处理异常
      }...
      

3. 异常的作用

  • 作用1:异常是用来定位程序bug的关键信息
  • 作用2:可以作为方法内部的一种特殊返回值以便通知上层调用者,方法的执行问题

4. 自定义异常

  • Java无法为这个世界上全部的问题都提供异常来代表类,如果企业自己的某种问题,想通过异常来表示,以便用异常来管理该问题,那么就需要自己来定义异常类了。
  • 自定义运行时异常
    • 定义一个异常类继承RuntimeException
    • 重写构造器
    • 通过throw new 异常类(xxx)来创建异常对象并抛出
    • 特点:编译阶段不报错,运行时才可能出现!提醒不属于激进型
  • 自定义编译时异常
    • 定义一个异常类继承Exception
    • 重写构造器
    • 通过throw new 异常类(xxx)创建异常对象并抛出
    • 特点:编译阶段就报错,提醒比较激进。

5. 异常的处理方案

  • 方案1:底层异常层层往上抛出,最外层捕获异常,记录异常信息,并响应适合用户观看的信息进行提示
  • 方案2:最外层捕获异常后,尝试重新修复

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

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

相关文章

算法宝典——二分查找算法

1.认识二分查找 二分查找的时间复杂度:O(logN) 二分查找属于算法中耳熟能详的一类,通常的我们会说只有数组有序才可以使用二分查找,不过这种说法并不完全正确,只要数据具有"二段性"就可以使用二分查找,即我们可以找出一…

【零散技术】Odoo PDF 打印问题问题合集

序言:时间是我们最宝贵的财富,珍惜手上的每个时分 Odoo PDF打印 是一个必备功能,但是总会遇到一些奇奇怪怪的问题,此帖仅做记录,方便查阅。 目录 1、样式丢失 2、部分结构丢失 3、没有中文字体 1、样式丢失 这种情况一般是由于 …

ppt压缩有什么简单方法?压缩PPT文件的几种方法

ppt压缩有什么简单方法?许多用户常常面临文件过大的问题,尤其在需要通过电子邮件发送或上传至网络平台时,大文件会带来诸多麻烦。此外,较大的文件可能导致软件响应缓慢,从而影响整体的演示体验。因此,寻找有…

C++ 基础入门-命名空间、c++的输入输出、缺省参数、函数重载、引用、内联函数超详细讲解

这篇文章主要对c的学习做一个基础铺垫,方便后续学习。主要通过示例讲解命名空间、c的输入输出cout\cin,缺省参数、函数重载、引用、内联函数,auto关键字,for循环,nullptr以及涉及到的周边知识,面试题等。为…

机械键盘驱动调光DIY--【DAREU】

1 下载键盘对应的驱动,不要装到C盘 达尔优驱动下载中心 2 驱动更改教程 标准模式 键盘功能 鼠标功能 切换灯光 切换配置文件 多媒体 windows快捷键 禁用 Fn 启动程序 文本功能 光标定位 FN模式 灯光效果设置 注意 宏--自定义功能

RK3568平台(camera篇)tp9930调节亮度色度锐度对比度

一.TP9930说明 1.1说明 TP9930是支持高清传输视频接口(HD)的通用HD/SD视频解码器- TVI)视频、NTSC/PAL CVBS视频以及常见的HD模拟视频格式解码。它集成了4个多标准解码器,可同时对现有的HD模拟格式进行4通道解码。它还可以与任何传统的CVBS相机兼容,以实现向后兼容性。…

spring:spring 中的初始化操作

参考 https://www.jb51.net/program/322735nvy.htmhttps://blog.csdn.net/weixin_40511641/article/details/136843198

Python(七)- 文件操作

目录 文件操作 打开文件 读数据 写数据 关闭文件 文件读写实例 文件写 文件读 读数据类型 备份文件 os模块 目录的具体操作 文件操作 在Python中操作文件记录信息的步骤: (1)打开文件,或新建一个文件; o…

Qt 项目优化实践方向

目录 1. 使用智能指针2. 避免在全局或静态作用域中使用裸指针3. 利用Qt的对象树进行资源管理4. 延迟加载和按需加载资源5. 合理使用Qt的资源文件(qrc)6. 监控和调试内存使用7. 优化数据结构8. 减少不必要的资源复制9. 使用缓存机制10. 遵循RAII原则 以下…

面试扩展知识点

1.C语言中分为下面几个存储区 栈(stack): 由编译器自动分配释放堆(heap): 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收全局区(静态区): 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域&#…

用于探索和测试API的开源IDE工具-Bruno

1、前言 在进行软件开发与测试过程中,无论是开发人员还是测试人员,都会或多或少地进行接口调试与接口测试。尤其针对那种测试流程规范性很高的项目,测试人员进行接口测试是不可或缺的一部分。而这其中,大多数都会使用 Postman 作…

bash: unzip: 未找到命令,sudo: nano:找不到命令

在 Ubuntu/Debian 系统上 打开终端并运行以下命令: sudo apt update sudo apt install unzip在 CentOS/RHEL 系统上 打开终端并运行以下命令: sudo yum install unzip在 macOS 上 如果您使用的是 macOS,可以使用 Homebrew 安装 unzip&#…

9.26 Buu俩题解

[CISCN2019 华东北赛区]Web2 看wp写完之后写的 知识点 存储型XSS与过滤绕过sql注入 题解 好几个页面,存在登录框可以注册,存在管理员页面(admin.php) ->既然存在管理员页面,且直接访问admin.php提示我们 说明存在身份验证&#xff0…

elasticsearch向量数据库服务搭建

elasticsearch向量数据库服务搭建 文章目录 elasticsearch向量数据库服务搭建一、es安装步骤二、es可视化kibana安装步骤三、安装elasticsearch-head 四、数据测试,kibana脚本,操作es五、向量数据测试,kibana脚本,操作es参考资料 …

crypto-js解密报错malformed utf-8 data

在进行加解密处理时出现这个问题。 但是当在一个完整程序运行环境内加密字符串,解密字符串是没问题的。 当把加密的字符存储到txt文件,在读取解密时出现错误无法解密。 最后,使用res.replace(/\s/g,‘’)正则过滤掉txt文件内的空格就成功了。…

若依生成主子表

一、准备工作 确保你已经部署了若依框架,并且熟悉基本的开发环境配置。同时,理解数据库表结构对于生成代码至关重要。 主子表代码结构如下(字表中要有一个对应主表ID的字段作为外键,如下图的customer_id) -- ------…

SOCKS5代理和HTTP代理哪个快?深度解析两者的速度差异

在现代互联网环境中,使用代理IP已经成为了许多人日常生活和工作的必备工具。无论是为了保护隐私,还是为了访问某些特定资源,代理IP都扮演着重要的角色。今天,我们就来聊聊SOCKS5代理和HTTP代理,看看这两者到底哪个更快…

【赵渝强老师】K8s中的Deployment控制器

K8s的Deployment将Pod部署成无状态的应用程序,它只关心Pod的数量、Pod更新方式、使用的镜像和资源限制等。由于是无状态的管理方式,因此Deployment中没有角色和顺序的概念,换句话说:Deployment中没有状态。   通过使用Deploymen…

UART 如何实现波特率自动检测原理介绍

为什么需要波特率自动检测机制 我们都知道,串口通讯是需要约定波特率才能够进行准确的通讯。此时假设,你们公司开发了一个板子,有一个串口与外接设备进行通讯。因为你们公司开发的产品要提供给多个客户,而有些客户可能之前就有一…

高通Android 12 音量API设置相关代码

// 获取当前音量大小public static int getCurrentVolume(Context context) {AudioManager audioManager (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);return audioManager.getStreamVolume(AudioManager.STREAM_MUSIC); // 使用 STREAM_MUSIC 作为示例…