广州外贸网站公司安阳网站开发

diannao/2026/1/23 0:34:58/文章来源:
广州外贸网站公司,安阳网站开发,做自己网站彩票,百度seo招聘目录#xff1a; 一. 异常概念与体系结构 二. 异常的处理 三. 自定义异常类 一. 异常概念与体系结构: 1 异常的概念:在 Java 中#xff0c;将程序执行过程中发生的 不正常行为 称为异常#xff0c; 如#xff1a;算数异常#xff1a; ArithmeticException System.out.pri… 目录 一. 异常概念与体系结构 二. 异常的处理 三. 自定义异常类 一. 异常概念与体系结构: 1 异常的概念:在 Java 中将程序执行过程中发生的 不正常行为 称为异常 如算数异常 ArithmeticException System.out.println(10 / 0); // 执行结果 Exception in thread main java.lang.ArithmeticException: / by zero 数组越界异常ArrayIndexOutOfBoundsException int[] arr {1, 2, 3}; System.out.println(arr[100]); // 执行结果 Exception in thread main java.lang.ArrayIndexOutOfBoundsException: 100 空指针异常 NullPointerException int[] arr null; System.out.println(arr.length); // 执行结果 Exception in thread main java.lang.NullPointerException 2.异常的体系结构异常种类繁多为了对不同异常或者错误进行很好的分类管理 Java 内部维护了一个 异常的体系结构 如图 从图中可以看出 (1).Throwable 是异常体系的顶层类其派生出两个重要的子类, Error 和 Exception (2). Error指的是Java虚拟机无法解决的严重问题比如JVM的内部错误、资源耗尽等典型代表 StackOverflowError和OutOfMemoryError一旦发生回力乏术。 (3).Exception 异常产生后程序员可以通过代码进行处理使程序继续执行。比如感冒、发烧。我们平时所说的异常就是Exception。 OutOfMemoryError为内存泄漏 程序中存在未释放的内存资源导致内存占用不断增加最终导致内存不足等等 StackOverflowError为无限递归下去导致 超出栈的容量等等 3. 异常的分类:分为 编译时异常,  运行时异常。 (1). 编译时异常:  在程序 编译期间 发生的异常称为 编译时异常 也称为 受检查异常 如图这个重写克隆方法的拷贝没有对其捕获或声明 下图则是声明 就编译通过 2. 运行时异常 1 在程序 执行期间 发生的异常称为运行时异常也称为 非受检查异常 2RunTimeException以及其子类对应的异常都称为运行时异常。 比如NullPointerException、ArrayIndexOutOfBoundsException、ArithmeticException。 注意编译时出现的语法性错误不能称之为异常。例如将 System.out.println 拼写错了, 写成了 这里也用克隆举例子这里没有实现克隆接口却编译通过了 但是运行会有异常这就是非受查异常 二. 异常的处理 在Java中 异常处理主要的 5 个关键字 throw 、 try 、 catch 、 final 、 throws 。用好他们就可以很好的处理异常了。 1. 异常的抛出 在Java中可以借助throw关键字抛出一个指定的异常对象将错误信息告知给调用者 注意 1. throw必须写在方法体内部 2. 抛出的对象必须是Exception 或者 Exception 的子类对象 3. 如果抛出的是 RunTimeException 或者 RunTimeException 的子类则可以不用处理直接交给JVM来处理 4. 如果抛出的是编译时异常用户必须处理否则无法通过编译 5. 异常一旦抛出 其后 的代码就不会执行。 如图这里还用了try处理catch捕捉 public static void main(String[] args)throws ArrayIndexOutOfBoundsException {int[] array new int[2];//捕捉异常try {//放可能发生的异常System.out.println(array[3]);System.out.println(这里不会再执行了);}catch (ArrayIndexOutOfBoundsException e) {//捕捉异常System.out.println(处理了ArrayIndexOutOfBoundsException异常);//捕捉打印异常e.printStackTrace();}} 2.异常的捕获异常的捕获也就是异常的具体处理方式主要有两种 异常声明throws 以及 try-catch捕获处理。 抛出异常 public static void OpenConfig(String filename) throws FileNotFoundException {if (filename.equals(config.ini)) {throw new FileNotFoundException(配置文件名字不对);}} 3.try-catch 捕获并处理 throws对异常并没有真正处理而是将异常报告给抛出异常方法的调用者由调用者处理。如果真正要对异常进行处理就需要try-catch。 此时声明一下然后捕获 直接声明不捕获也可以 class Exception {File file;/*FileNotFoundException : 编译时异常表明文件不存在此处不处理也没有能力处理应该将错误信息报告给调用者让调用者检查文件名字是否给错误了*/public static void OpenConfig(String filename) throws FileNotFoundException {if (filename.equals(config.ini)) {throw new FileNotFoundException(配置文件名字不对);}}//捕获public static void main(String[] args) {try {//将可能出现异常的代码放在这里OpenConfig(test);} catch (FileNotFoundException e) {// 如果try中的代码抛出异常了此处catch捕获时异常类型与try中抛出的异常类型一致时或者是try中抛出异常的基就会时就会被捕获到e.printStackTrace();}finally {// 此处代码一定会被执行到,一般用来关闭文件释放资源}} } 注意1.try块内抛出异常位置之后的代码将不会被执行。 2. 如果 抛出异常类型与catch时异常类型不匹配 即异常不会被成功捕获也就不会被处理继续往外抛 直到 JVM收到后中断程序。 一般写法是用父类异常在最后面兜底 4.finally 在写程序时 有些特定的代码不论程序是否发生异常都需要执行比如程序中打开的资源 网络连接、数据库连接、IO 流等 在程序正常或者异常退出时必须要对资源进进行回收 。另外因为 异常会引发程序的跳转可能导致有些语句执行不到 finally 就是用来解决这个问题的。 还有 finally 中的代码一定会执行的一般在 finally 中进行一些资源清理的扫尾工作 语法格式 try{ // 可能会发生异常的代码 }catch(异常类型 e){ // 对捕获到的异常进行处理 }finally{ // 此处的语句无论是否发生异常都会被执行到 } // 如果没有抛出异常或者异常被捕获处理了这里的代码也会执行 补充异常的处理流程 如果本方法中没有合适的处理异常的方式, 就会沿着调用栈向上传递 方法1--》方法2--》方法3---》main方法----》jvm 三. 自定义异常类 Java 中虽然已经内置了丰富的异常类, 但是并不能完全表示实际开发中所遇到的一些异常此时就需要维护符合我们实际情况的异常结构.就需要自定义异常 例如, 我们实现一个用户登陆功能 根据业务此时我们在处理用户名密码错误的时候可能就需要抛出两种异常 注意 1.自定义异常类然后继承自Exception 或者 RunTimeException 2. 实现一个带有String类型参数的构造方法参数含义出现异常的原因 业务代码 class login {private String userName;private String passWord;public void loginFo(String userName, String passWord)throws UserException,PassWardException{if (!this.userName.equals(userName)) {throw new UserException(抛出自定义的用户名错误异常);}if (!this.passWord.equals(passWord)) {throw new PassWardException(抛出密码自定义的用密码错误异常);}System.out.println(登录成功);}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName userName;}public String getPassWord() {return passWord;}public void setPassWord(String passWord) {this.passWord passWord;} }public class TestException {public static void main(String[] args) throws UserException {login login new login();login.setPassWord(321);login.setUserName(haha);login.loginFo(haha, 323);/*try {login.loginFo(haha, 323);}catch (UserException e) {e.printStackTrace();}catch (PassWardException e) {e.printStackTrace();}finally {}*/} }

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

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

相关文章

如何创建个人网站模板杭州营销网站建设平台

1. 自动提交最简单的提交方式是让消费者自动提交偏移量。如果 enable.auto.commit 被设为 true,那么每过 5s,消费者会自动把从 poll() 方法接收到的最大偏移量提交上去。提交时间间隔由 auto.commit.interval.ms 控制,默认值是5s。消费者每次…

网站建设图标合集网站如何做团购

题目 28. 实现 strStr() 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例 1: 输入: haystack “hello”, needle “ll” 输…

企业展示网站 价钱网站建设免费软件

目录 修改约束 创建数据库 添加约束 删除约束 Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 修改约束 如果说表结构的修改还在可以容忍的范畴之内,那么约束的修改是绝对 100% 禁止的 所有的约束一定要在…

wordpress 仿站 教程网2008iis网站属性

C11标准之前的auto_ptr这个智能指针不被广泛使用的原因就是:在某些应用场景下,拷贝构造函数的意义不明确,同理赋值语句也是这个道理,意义同样不明确,因为C11标准之前并不存在移动赋值和移动构造的概念,还有…

做淘宝网站要求与想法常州建设工程电子审图网站

vbs读取数据库值前端FlexGrid前导0出不来的原因 原因 系统设置问题 解决 修改系统默认数值显示: 1)控制面板找到“区域”,点击“更改日期、时间和数字模式”,在弹出窗口点击“其他设置” 2)在数字一栏中的“显示前…

制作网站教程哪个网站可以做加工代理的

学习python前纠结了下,到底是应该一个个知识点吃透,然后写些小程序。还是应该快速掌握基础语法,快速实践。思考后认为前者这么学习速度真心不高,于是花2天时间看了下python3的语法,虽然很多都不明白,但是带…

网站开发合同属于知识产权类吗谁给个网站啊急急急2021

文章目录前期准备应用场景1.constant_score查询-不考虑文档频率得分,与搜索关键字命中更多的返回结果2.sort排序-分数相同情况下,按照指定价格域排序3.不考虑文档频率TF/IDF情况下,不同域打分权重不同进行召回4.不考虑文档频率TF/IDF情况下&a…

网站开发专业职业规划会计培训

学习目标 加强理解DMA数据传输过程加强掌握DMA的初始化流程掌握DMA数据表查询理解源和目标的配置理解数据传输特点能够动态配置源数据学习内容 需求 uint8_t data; 串口接收(&data);data有数据了 实现串口的数据接收,要求采用dma的方式。 数据交互流程 CPU配置好DMA外…

网站建设研究的意义一般网站建设

全屏Java.math.BigDecimal.plus()方法实例java.math.BigDecimal.plus() 返回一个BigDecimal,其值是 (this),并且其刻度为是 this.scale().这种方法,它只是返回此BigDecimal是包括对称性与一元减号方法negate()。声明以下是java.math.BigDecim…

建设部网站怎么查询相关专业wordpress加入音乐播放器

最近AWS公布了新的客户端库,它实现了JMS 1.1规范 ,并使用他们的简单队列服务 (SQS)作为JMS提供者 (见杰夫巴尔的帖子在这里 )。 在我的文章中,我将向您展示如何设置Maven项目以使用Spring Frame…

做网站如何自动采集图片wordpress精美免费主题

据悉,诺基亚创新和测试强调了其AirScale无线产品组合的灵活性、可升级性和可扩展性,以适应技术初始应用中实现的5G频段。 通过证明AirScale能够支持低频和高频,运营商将能够从5G推出的第一天提供广泛的覆盖和室内覆盖,而无需进行复…

顶客网站和网摘网站国外wordpress

认识面向对象 Java是一门纯面向对象的语言(Object Oriented Program, OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。  面向过程和面相对象并不是一门语言,而是解决…

做网站免费搭建为什么做可信网站

目录1.上传tar包2.解压3. 设置环境变量4.设置Hive的配置文件5.启动Hive6.安装MySQL7.下载MySQL的驱动包8.修改Hive的配置文件9.启动Hive10.查看MySQL数据库 目录 1.上传tar包 jar包地址:http://hive.apache.org/downloads.html 2.解压 tar -zxvf apache-hive-2…

百度网站收录个人作品网站

MySQL中的自动增量AUTO_INCREMENT,是有使用条件的 该列(column)的数据类型必须是数值型(这点容易理解,数值才能自增)该列必须被索引,比如定义为主键(PRIMARY KEY) 感悟…

免费素材下载网站有哪些网站开发实用技术第2版课后答案

文章目录 工作原理代码编写驱动方式全步进驱动半步进驱动微步进驱动 工作原理 工作原理简要说明,和单片机一起配合使用的步进电机多为28BYJ28 五线四相步进电机,配合ULN2003驱动板进行控制,如图所示,对于扭矩、精度要求较高的还有…

58同城网站建设推广排名电商直播app开发公司

一 选择排序 原理:选择排序很简单,他的步骤如下: 从左至右遍历,找到最小(大)的元素,然后与第一个元素交换。从剩余未排序元素中继续寻找最小(大)元素,然后与第二个元素进行交换。以此…

网站建设的方案模板下载个人导航网站怎么备案

目前展示了用Avalonia做几个主要流行的主界面,演示了一下组件的使用。用不同的实现方式实现一些方法。 1、独立大屏展示,类似一个实时监控,这是一种目前很方便的大屏效果。 主要涉及的内内容: (1)窗标题实…

小型网站开发开题报告范文六安杂谈百姓畅言

1. 正所谓圣人云:“无农不稳,无商不富”,“民无利则国不富,民不富则国无税,国无税则兵不强,兵不强则天下危”。 2. 播下一个行动,收获一种习惯;播下一种习惯,收获一种性格…

做网站维护学什么编程语言数字化营销系统

Laravel 中的所有异常都由类App\Exceptions\Handler集中处理,这个类有两个方法:report 和 render。【report 方法】report 方法用于记录异常并将其发送给外部服务。默认情况下,report 方法只是将异常传递给异常基类并写入日志进行记录&#x…

北京网站建设流程兴化建设局网站

前言 MVC(Model-View-Controller)是一种常用的软件架构模式。将MVC应用于Unity3D开发可以提高项目的可维护性和可扩展性,使代码更加清晰和易于理解。本文将详细介绍Unity3D中MVC开发模式的应用以及开发流程,并给出技术详解和代码…