【Java异常】什么是异常,Java中如何处理异常?

news2024/11/16 15:32:58

在这里插入图片描述

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~

在这里插入图片描述

Java异常处理

    • 1. 了解异常:
    • 2. 异常处理
    • 3. 自定义异常
    • 4. finally块


1. 了解异常:

异常

  • 继承/实现 关系:
  • Java.lang.Throwable
    • Error
    • Exception —— 异常顶层父类
      • RuntimeException
      • 其他异常(编译时异常)

  • Error:代表系统级别错误(属严重问题),系统一旦出现问题,sun公司就会把这些错误封装成Error对象,Error是给sun公司自己使用,不是提供给开发者使用。
  • Exception:异常,代表程序可能出现问题,我们通常会用Exception以及他地子类来封装程序出现的问题(异常)。
  • 运行时异常:RuntimeException及其子类,编译阶段不会出现异常提醒。(如:NullPointerException、ArrayIndexOutOfBoundsException)
  • 编译时异常:除去RuntimeException及其子类,其余异常都是编译时异常,是编译阶段就会出现的异常,不解决,程序就无法编译运行。

作用

  • 异常是用于检查bug的关键参考消息。
  • 异常可以作为方法内部的一种特殊值返回,以便通知调用者底层的情况。



2. 异常处理

  • ①JVM默认处理方式:

    • 把异常名称,异常原因以及异常出现的位置等信息输出在了控制台。
    • 程序停止运行,下面的代码不会执行。
  • ②手动处理方式(捕获异常):

    • //捕获异常 使用方式:
      try{
          可能出现异常的代码;
      }catch(异常类型 变量名){
          异常处理代码;
      }
      
    • 好处:可以让程序继续往下执行,不会停止。

    • Throwable成员方法

      • public String getMessage():返回此throwable的详细信息字符串
      • public String toString():返回此throwable的简单描述
      • public void printStackTrace():把异常的错误信息输出在控制台
    • 注意

      • 若没有异常,catch块不执行。

      • 若存在多个异常,应该设置多个对应的catch块来捕获异常。

      • 有多个catch块时,若待捕获的异常存在继承关系,应当先捕获子类异常再捕获父类异常。

      • JDK7以后,可以在一个catch块中捕获多个异常,用|符号分隔。

      • try中遇到异常未被捕获,会使用JVM默认处理方式。

      • try中捕获到异常就直接跳转到catch块,try中后续代码不会执行。

  • ③抛出处理(抛出异常):

  • 1)throws

    • //使用:
      public void 方法名()throws 异常类名1,异常类名2...{
          ...
      }
      
    • 注意:

      • 写在方法定义处,表示声明一个异常,告诉调用者使用此方法可能会有哪些异常。
      • 编译时异常必须要写,运行时异常可以不写。
  • 2)throw

    • //使用
      public void 方法(){
      	throw new NullPointerException();
      }
      
    • 注意:

      • throw使用在方法内,会结束方法并手动抛出异常,使得后续代码不再被执行。



3. 自定义异常

自定义异常

  • 步骤

    • ①定义异常类

      • Exception作为异常类名的后缀,运行时异常类需继承RuntimeException,编译时异常需继承Exception
    • ②写继承关系

    • ③空参构造器

    • ④带参构造器

    • //①异常类名后缀Exception
      public class AgeOutOfBoundsException extends RuntimeException{ //②继承关系
          //③空参构造
          public AgeOutOfBoundsException(){}
          
          //④带参构造
          public AgeOutOfBoundsException(String message){
              super(message);
          }
      }
      
    • 遵循见名知意的原则,让控制台报错信息清晰明了,方便错误定位。




4. finally块

  • 特性:finally块中的代码一定会被执行,除非JVM退出。

  • 由于一定会被执行的特性,finally{}通常用作资源的释放。

  • //捕获异常 使用方式:
    try{
        可能出现异常的代码;
    }catch(异常类型 变量名){
        异常处理代码;
    }finally{
        //一定会被执行的代码
    }
    
  • 注意:当三个块中都出现了return语句,首先记录try{}中return的结果,出现异常时,还会记录catch{}中return的结果,最后记录finallu{}块中的结果,最终返回的是finallu{}块中的结果



在这里插入图片描述

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

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

相关文章

人大金仓与哪吒科技达成战略合作,加快推动智慧港口建设

近日,人大金仓与哪吒港航智慧科技(上海)有限公司(以下简称“哪吒科技”)达成战略合作。双方旨在共享优势资源,联合为港口企业转型升级提供完备的技术支撑与行业解决方案。人大金仓总裁杜胜、哪吒科技总经理…

财务系统的报账页面设计

报账,指各部门向财务部报送账单,财务审批后予以结算。 报账的做法,小公司可能会少一些,大公司会多一些。小公司人员少,沟通快捷,运转效率高,老板予以口头肯定后财务直接付款了。大公司的部门很多…

wpf主页面解析

1、 开头的网址作用 1和2都是引入命名空间的,每一个字符串代表一系列的命名空间,这样就可以不用一个一个引用了。wpf中规定有一个名称空间是可以不加名字的,xmlns不加名字是默认命名空间。 "http://schemas.microsoft.com/winfx/2006/x…

如何利用开源考试系统进行在线远程考试?

在当前全球疫情的影响下,远程教育和在线考试的需求日益增长。开源考试系统成为一种受欢迎的选择,它为教师和学生提供了便利的远程考试解决方案。 选择适合自己需求的开源考试系统是至关重要的。多种开源考试系统在市场上可供选择。教师应根据自己的教学…

海外版知乎Quora,如何使用Quora进行营销?

想必大家对知乎非常熟悉,而Quora作为海外最受欢迎的网站之一,是与知乎功能与性质非常相似的一个平台,靠回答别人的问题获得关注,是引流最快的一个平台。对于做跨境电商、独立站的商家来说,这是一个绝佳的免费引流广告工…

ABAP程序不报错缺出错---解决

ALV字段名不显示 自建的透明表 REPORT ZTXYY_1123. DATA: gr_alv TYPE REF TO cl_salv_table,gr_columns TYPE REF TO cl_salv_columns_table. DATA: ZPL_LIST TYPE TABLE OF ZPL_EINVOICE_LOG. CALL METHOD cl_salv_table>factory IMPORTINGr_salv_table gr_alv CHAN…

点云处理【四】(点云关键点检测)

第一章 点云数据采集 第二章 点云滤波 第二章 点云降采样 1.点云关键点是什么? 关键点也称为兴趣点,它是2D图像、3D点云或曲面模型上,可以通过定义检测标准来获取的具有稳定性、区别性的点集。 我们获得的数据量大,特别是几十万…

C++模拟实现——list

一、成员变量及其基本结构 1.基本结构模型 本质是一个带头双向循环列表&#xff0c;将节点进行封装&#xff0c;并且为了方便使用&#xff0c;进行重定义 2.节点的封装定义 template<class T>//定义节点struct list_node{list_node<T>* _prev;list_node<T>…

linux性能分析(三)CPU篇(一)基础

一 CPU篇 遗留&#xff1a; 负载与cpu关系、负载与线程的关系? ① CPU 相关概念 1、physical 物理CPU个数 --> 一般一个实体 2、cpu 核数 3、逻辑CPU个数 逻辑核 4、超线程 super thread 技术 5、各种cpu的计算方式物理 physical CPU的个数&#xff1a; physical id逻…

易点易动固定资产管理系统引入RFID手持终端助力固定资产盘点

在现代商业环境中&#xff0c;固定资产盘点和管理对企业的运营至关重要。然而&#xff0c;传统的手工盘点方法已经无法满足企业对效率和准确性的要求。为了解决这一问题&#xff0c;易点易动固定资产管理系统引入RFID&#xff08;射频识别&#xff09;手持终端&#xff0c;为固…

北京卫视《为你喝彩》——星辰天合 CEO 胥昕,他专攻 SDS 让“数据常青”

10 月 18 日晚&#xff0c;北京卫视《为你喝彩》栏目播出&#xff0c;主题为《你有没有为梦想拼过命&#xff1f;听创业者说》&#xff0c;星辰天合 CEO 胥昕作为主人公之一&#xff0c;讲述了自己的创业故事。 如下内容摘自北京卫视&#xff1a; 青春总有着万般姿态&#xf…

图数据库实践 - 如何将图数据库应用于对公信贷

导读 日前&#xff0c;在经济形势和政策环境下&#xff0c;银行信贷结构进一步调整&#xff0c;民营企业、小微企业、绿色信贷投放力度持续加大。而坚持金融服务实体经济是政府的一贯主张&#xff0c;据相关工作报告指出&#xff0c;要求用好普惠小微贷款支持工具&#xff0c;…

为什么需要协调能力?如何提高协调能力?

协调能力指的是协作与调和&#xff0c;属于综合性能力的体现&#xff0c;涉及到表达&#xff0c;沟通&#xff0c;逻辑等方面&#xff0c;在日常生活中缺乏协调能力&#xff0c;也许影响并不太大&#xff0c;但是如果在职业发展中&#xff0c;协调能力就尤为重要&#xff0c;尤…

【公益案例展】广碳所——恒生电子基于区块链技术打造区域性碳中和登记系统...

‍ 恒生电子公益案例 本项目案例由恒生电子投递并参与数据猿与上海大数据联盟联合推出的 #榜样的力量# 《2023中国数据智能产业最具社会责任感企业》榜单/奖项”评选。 ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 全球气候变暖、温室效应明显、二氧化碳排放增多&#…

virtualBox虚拟机安装多个+主机访问虚拟机+虚拟机访问外网配置

目的&#xff1a;本机安装3个虚拟机 一、虚拟机安装&#xff1a;Oracle VM VirtualBox (https://www.virtualbox.org/)源代码可下载&#xff0c;且免费使用 1、https://www.virtualbox.org/ 进入网站中Download 模块选择与自己电脑系统相应的下载包下载即可 如果安装过程报错如…

京东数据分析:2023厨房小电市场遇冷,空气炸锅等明星产品被抛弃

过去几年间&#xff0c;宅经济的爆发带火了酸奶机、煮蛋器、豆浆机、空气炸锅、养生壶等&#xff0c;一众外观小巧、功能丰富、价格相对便宜的厨房小家电。但随着年轻人走出家门回归工作岗位&#xff0c;厨房小家电们却步入了艰难时刻。 如今&#xff0c;厨房小家电们似乎正在经…

论坛介绍 | COSCon'23 人工智能(A)

众多开源爱好者翘首期盼的开源盛会&#xff1a;第八届中国开源年会&#xff08;COSCon23&#xff09;将于 10月28-29日在四川成都市高新区菁蓉汇举办。本次大会的主题是&#xff1a;“开源&#xff1a;川流不息、山海相映”&#xff01;各位新老朋友们&#xff0c;欢迎到成都&a…

NET7下用WebSocket做简易聊天室

NET7下用WebSocket做简易聊天室 步骤&#xff1a; 建立NET7的MVC视图模型控制器项目创建websocket之间通信的JSON字符串对应的实体类一个房间用同一个Websocketwebsocket集合类&#xff0c;N个房间创建websocket中间件代码Program.cs中的核心代码&#xff0c;使用Websocket聊…

C语言利用已知公式估算e的近似值

编写一个函数&#xff0c;由公式e11/1&#xff01;1/2! 1/3!…&#xff0c;计算不同精确度下e的近似值。要求能够用键盘揄入指定的精确度&#xff0c;并输出该精确度下的e的近似值 例如&#xff1a;输入精确度为10e-6&#xff0c;则输出结果&#xff1a;2.718279。 #include &…

原来你根本不会找资源~

作为一名合格的传媒工作者&#xff0c;我不允许还有人不会找资源&#xff0c;下面这个四个网站必须码住&#xff0c;百分之八十的素材都来源于这些&#xff01;一、XDown【xdown.chuangzuoniu.com】 在线视频下载器&#xff0c;支持1000主流在线视频网站&#xff0c;一键下载多…