Java中异常处理-详解

异常(Exception)

  • JVM 默认处理方案

    • 把异常的名称,异常的原因,及异常出错的位置等信息输出在控制台
    • 程序停止执行
  • 异常类型

    编译时异常必须显示处理,否则程序会发生错误,无法通过编译
    运行时异常无需显示处理,也可以和编译时异常一样处理
  • 代码示例:


异常处理三种方式

try…catch
  • 格式:

    try{ 可能出现异常的代码;  
    }catch(异常类名 变量名){异常的处理代码;e.printStackTrace();		// 打印异常信息
    }finally{有无异常都执行的代码
    }
    
  • 示例代码:

    public class Test5 {public static void main(String[] args) {try{//分母不能为 0 ,很明显错误,程序运行到这,抛出算术运算异常:ArithmeticExceptionint a = 5/0;// ①System.out.println("砥砺前行");}catch (Exception e){e.printStackTrace();}finally {System.out.println("欢迎来到编程世界!");}}
    }
    

    ①位置因,上一行代码异常,被抓取到了,catch 中进行处理,处理完后,执行 finally 中代码,finally 最经常使用于,IO 处理释放流


throws
  • 格式:

    throws 异常类名	
    

    跟在方法的括号后面,仅仅是将异常抛出,谁调用谁处理,main 抛出,由 JVM 虚拟机处理

  • 示例代码:

    public class Test6 {public static void main(String[] args) {try{show();}catch (Exception e){e.printStackTrace();}System.out.println("欢迎来到编程世界!");}public static void show() throws ArithmeticException{int a = 5/0;System.out.println(a);}
    }
    


throw
  • 自定义异常,用在方法体内,跟的是异常对象名,表示抛出异常

  • 格式

    throw new Exception("自定义异常");
    
  • 示例代码

    public class Test7 {public static void main(String[] args) throws Exception {// 创建键盘输入对象Scanner sc = new Scanner(System.in);int i = 1;// 三次机会System.out.println("请输入颜色:");while(i <= 3){String color = sc.next();show(color);}}public static void show(String color) throws Exception {if(color.equals("黑色")){throw new Exception("颜色有误!");}else if(color.equals("白色")){System.out.println("颜色正确");System.exit(0);}else{System.out.println("请重新输入颜色:");}}
    }
    

lse{
System.out.println(“请重新输入颜色:”);
}
}
}


[外链图片转存中...(img-Z9UFvaEo-1704889950374)]

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

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

相关文章

谓词-量词、主析取、主和取范式、前束范式、推理证明

这部分内容&#xff0c;主要需要掌握谓词推理&#xff0c;而前提是掌握将自然语言符号化为谓词、用量词来限定辖域&#xff0c;量词的消去、剩下就是推理过程。还需要掌握的是主析取、主和取范式和前束范式。 存在量词∃&#xff1a;至少有一个 全称量词∀&#xff1a;全都是…

Qt QCheckBox复选按钮控件

文章目录 1 属性和方法1.1 文本1.2 三态1.3 自动排他1.4 信号和槽 2 实例2.1 布局2.2 代码实现 Qt中的复选按钮类是QCheckBox它和单选按钮很相似&#xff0c;单选按钮常用在“多选一”的场景&#xff0c;而复选按钮常用在"多选多"的场景比如喜欢的水果选项中&#xf…

文献阅读1

A Hierarchical Representation Network for Accurate and Detailed Face Reconstruction from In-The-Wild Images 会议/期刊&#xff1a;CVPR 2023&#xff1b;阿里达摩院&#xff1b;Biwen Lei 概述&#xff1a;这是一篇单张图片三维人脸重建的论文&#xff0c;这篇论文的…

微机原理常考简答题总结

一&#xff0c;8086和8088这两个微处理器在结构上有什么异同&#xff1f; &#xff08;1&#xff09;共同点&#xff1a;内部均由EU、BIU组成&#xff0c;结构基本相同&#xff1b;寄存器等功能部件均为16位&#xff1b;内部数据通路为16位&#xff1b;指令系统相同。 &#x…

mercury靶机

文章妙语 不与伪君子争名&#xff0c;不与真小人争利&#xff0c;不与执拗人争理&#xff0c;不与匹夫争勇&#xff0c;不与酸儒争才。不与蠢人施恩 一、信息收集 主机探测 端口探测 探测主机详细版本信息 8080开了http服务 目录扫描 robots.txt目录下什么也没有 二&#xff0…

MongoDB查找命令find,让数据返回称心如意

业务系统接入数据库后&#xff0c;每天都有大量的数据写入数据库。面对逐日增加的数据&#xff0c;开发人员或数据分析人员&#xff0c;该如何读取数据&#xff0c;怎样设置条件&#xff0c;从数据库中查询数据&#xff1f; 本文基于mongodb的官方文档&#xff0c;整理出find命…

SpringBoot+Hutool实现图片验证码

图片验证码在注册、登录、交易、交互等各类场景中都发挥着巨大作用&#xff0c;能够防止操作者利用机器进行暴力破解、恶意注册、滥用服务、批量化操作和自动发布等行为。 创建一个实体类封装&#xff0c;给前端返回的验证码数据&#xff1a; Data public class ValidateCodeV…

中国智造闪耀CES | 木牛科技在美国CES展亮相多领域毫米波雷达尖端方案

素有全球科技潮流“风向标”之称的2024国际消费类电子产品展&#xff08;CES&#xff09;&#xff0c;于1月9-12日在美国拉斯维加斯会议中心举办。CES是全球最大的消费电子和消费技术展览会之一&#xff0c;汇集了世界各地优秀的消费电子和科技公司&#xff0c;带着最好的产品来…

关于BLE通信中WithoutResponse详细介绍

什么是WithoutResponse 在蓝牙低功耗&#xff08;BLE&#xff09;协议栈中&#xff0c;Characteristic 的写操作具有两种属性&#xff0c;分别为 "write" 和 "writeWithoutResponse"。 使用 "write" 属性发送命令时&#xff0c;需要接收端发送…

阿赵UE学习笔记——9、材质和材质实例

阿赵UE学习笔记目录 大家好&#xff0c;我是阿赵。   继续学习虚幻引擎&#xff0c;这次来了解一下UE里面关于材质的一些概念性的东西。 一、材质 材质这个概念&#xff0c;在所有三维软件里面都会有&#xff0c;比如3Dsmax里面的材质球&#xff0c;或者Unity里面的Material…

企业是否需要呼叫外包

随着企业的不断扩大业务不断增加&#xff0c;对于外呼和企业客服的质量有着更高的要求了&#xff0c;本着专业的人干专业的事情&#xff0c;呼叫中心外包服务成为许多企业的不二选择。然而&#xff0c;对于企业是否应该合作外包呼叫中心&#xff0c;仍需要从多个角度进行考虑。…

Python3 安装教程(windows)

Python &#xff08;官网&#xff09;是这两年来比较流行的一门编程语言。相对简单的语法以及丰富的第三方库。 步骤有三步&#xff1a; 1.下载 Python 安装包 2.安装 Python 3.查验是否安装成功 一.下载 Python 安装包 &#xff08;Python、Sublime 官方下载地址是外国的服…