当前位置:首页 > Java技术 > 7.2Error and Exception Handling错误与异常处理

7.2Error and Exception Handling错误与异常处理

2022年11月08日 22:39:19Java技术10

1  Error and Exception in Java  JAVA中的错误和异常

2 Exception Handling

– What is Exception?

– Classification of exceptions

– Checked and unchecked exceptions

– How to Throw an Exception

– Creating Exception Classes

– Catching Exceptions

– Rethrowing and Chaining Exceptions

– finally Clause

– The Try-with-Resources Statement

– Analyzing Stack Trace Elements

– Tips for Using Exceptions

 

 

 

 

1 Error and Exception in Java

 

 7.2Error and Exception Handling错误与异常处理 _ JavaClub全栈架构师技术笔记

 

 

内部错误:程序员通常无能为力,一旦发生,想办法让程序优雅的结束

异常:你自己程序导致的问题,可以捕获、可以处理

 

Error:

User input errors 用户输入错误

Device errors 设备错误

Physical limitations 物理限制

 7.2Error and Exception Handling错误与异常处理 _ JavaClub全栈架构师技术笔记

 

 

一些典型的错误:

VirtualMachineError:

OutOfMemoryError 内存溢出,JAVA虚拟机不能再为对象分配内存

StackOverflowError 应用递归太深

InternalError JAVA虚拟机的一些内部错误

LinkageError:(类依赖或者不兼容)

 NoClassDefFoundError:尝试加载定义但是无定义

 

 

 

3 Exception Handling

(1) What is Exception?

异常:程序执行中的非正常事件,程序无法再按预想的流程执行

将错误信息传递给上层调用者,并报告“案发现场”的信息

return 之外的第二种退出途径

若找不到异常处理程序,整个系统完全退出

(2) Classification of exceptions异常分类

异常的两个分支:

RuntimeException运行时异常:由程序员在代码里处理不当造成(数组越界,空指针,。。)

 Those that do not. 其他异常:由外部原因造成

 

运行时异常,是程序源代码中引入的故障所造成的(可以避免)

非运行时异常,是程序员无法完全控制的外在问题所导致的(不可避免)

 

(3) Checked and unchecked exceptions

--这是从异常处理机制的角度所做的分类。异常被谁 check ? —— 编译器、程序员

 7.2Error and Exception Handling错误与异常处理 _ JavaClub全栈架构师技术笔记

 

 

1)Checked Exception

编译器可帮助检查你的程序是否已抛出或处理了可能的异常

你要不就处理异常,要不就告诉编译器你的方法丢出throw那个异常

 一些术语:

Try,catch,finally,throws,throw

(throws) 声明“本方法可能会发生 XX 异常”

(throw) 抛出 XX 异常

(try, catch, finally) 捕获并处理 XX 异常

 7.2Error and Exception Handling错误与异常处理 _ JavaClub全栈架构师技术笔记

 

 

2)Unchecked Exception:Programming error, other unrecoverable failure(Error + RuntimeException)

--Errors and Runtime Exceptions are not checked by compiler

--你只能重写代码

 7.2Error and Exception Handling错误与异常处理 _ JavaClub全栈架构师技术笔记

 

 

在编程和编译的时候, IDE 与编译器均不会给出任何错误提示

 

 

 

当要决定是采用 checked exception 还是 unchecked exception 的时候,问一个问题:“如果这种异常一旦抛出, client 会做怎样的补救?

 7.2Error and Exception Handling错误与异常处理 _ JavaClub全栈架构师技术笔记

 

 

尽量使用 unchecked exception 来处理编程错误

 

 

错误可预料,但无法预防,但可以有手段从中恢复,此时使用 checked exception 。

 7.2Error and Exception Handling错误与异常处理 _ JavaClub全栈架构师技术笔记

 

 

@throws

 

 7.2Error and Exception Handling错误与异常处理 _ JavaClub全栈架构师技术笔记

 

 

(4) Declaring Checked Exceptions by throws

异常”也是方法和client 端之间 spec 的一部分,在 post-condition 中刻画

 

你所调用的其他函数抛出了一个 checked exception—— 从其他函数传来的异常

当前方法检测到错误并使用 throws 抛出了一个 checked exception—— 你自己造出的异常

此时需要告知你的 client 需要处理这些异常

 

程序员必须在方法的 spec 中明确写清本方法会抛出的所有 checked exception ,以便于调用该方法的 client 加以处理

 

不要抛出Error或者Unchecked Exception

 

(5) How to Throw an Exception

 7.2Error and Exception Handling错误与异常处理 _ JavaClub全栈架构师技术笔记

 

 

或者

 7.2Error and Exception Handling错误与异常处理 _ JavaClub全栈架构师技术笔记

 

 

找到一个能表达错误的Exception类/或者构造一个新的 Exception 类

构造 Exception 类的实例,将错误信息写入

抛出它

 

(6) Creating Exception Classes

 

如果JDK提供的 exception 类无法充分描述你的程序发生的错误,可以创建自己的异常类

 

(7) Catching Exceptions

作者:CIKIKI
来源链接:https://www.cnblogs.com/qq1076150459/p/13285627.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/68618.html

分享给朋友:

“7.2Error and Exception Handling错误与异常处理” 的相关文章

Spring Boot 2.x 系列教程:WebFlux REST API 全局异常处理 Error Handling

Spring Boot 2.x 系列教程:WebFlux REST API 全局异常处理 Error Handling

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 本文内容 为什么要全局异常处理? WebFlux REST 全局异常处理实战 小结 摘录...

Android打印堆栈

Android打印堆栈 java打印堆栈 方法一:...

Writing exception to parcel

04-01 17:38:28.101 4466-5268/? E/DatabaseUtils: Writing exception to parcel           &...

Error和Exception有什么区别?

Error表示系统级的错误和程序不必处理的异常,是恢复不是不可能但很困难的情况下的一种严重问题;比如内存溢出,不可能指望程序能处理这样的情况;Exception表示需要捕捉或者需要程序进行处理的异常,是一种设计或实现问题;也就是说,它表示如果程序运行正常,从不会发生的情况。...

Spring5:@Autowired注解、@Resource注解和@Service注解

什么是注解 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop、事物,这么做有两个缺点: 1、如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大;如果按需求分开.xml文件,那么.xml文件又会非常多。总之这将导致配置文件的可读性与...

cloudera-scm-server启动出现Error creating bean with name 'entityManagerFactoryBean'与HHH010003: JDBC Driver class not found: com.mysql.jdbc.Driver错误解决办法(图文详解)

cloudera-scm-server启动出现Error creating bean with name 'entityManagerFactoryBean'与HHH010003: JDBC Driver class not found: com.mysql.jdbc.Driver错误解决办法(图文详解)

     不多说,直接上干货!       问题详情 2017-07-31 22:19:40,342 INFO main:com.cloudera.server.cmf.Main: Starting SCM Serv...

android studio 的FAILURE: Build failed with an exception解决办法

android studio 的FAILURE: Build failed with an exception解决办法

关于导入项目、或者从远程pull下来的项目出现”FAILURE: Build failed with an exception”的解决方法: 如果项目列表显示错误可以考虑用以下方式 1、检查目录列表是否有以下文件,如没有请从其...

如何在android style文件中使用自定义属性

      前几天我在项目中遇到了这样一个问题:我为项目编写了一个自定义控件,这个控件会被大量复用,所以我准备在style.xml文件中定义一个style来减少重复xml布局内容的编写,但是里面有一个自定义的控件属性,问题出现在这里,虽然自定...

error和exception的不同与相同

error和exception的不同与相同

Exception和Error的区别 两者的“异”&各自的概念: 1.error:error 是指在正常情况下,不大可能出现的情况,绝大部分的 Error 都会导致程序处于非正常的、不可恢复状态。(这个时候运行的服务极有可能会down掉)--不可控,比较难捕获,偏底...

Error installing Workflow Manager: Add-WFHost raises exception

Workflow Manager 1.0 (a.k.a. Azure Workflow) is the new workflow engine to support workflow in SharePoint 2013. This allows for a more scalable...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。