Java 程序设计 第6章 异常与断言 笔记

简介: Java 程序设计 第6章 异常与断言 笔记

6.1 异常

6.1.1 基本概念

Java将异常设计为一种类(class),程序出现错误时,一个该类的异常对象被抛出(throw)。

Java定义了java/lang.Throwable类,所有异常类都是Throwable类的子类。


6.1.2 异常语法

Java要求把可能产生异常的代码放在try块里,

异常发生时,停止try块的代码执行,转到异常处理的catch块中;

最后,finally中的代码总是会执行。finally是可选的。

try{

//可能产生异常的代码

}

catch(某种异常) {

//处理异常}

catch(异常){...

}

finally{//清理现场

}


6.1.3 finally

finally块总会执行,因此常常用来释放代码用到的资源。


6.1.4 throw语句

try-catch-finally语句是异常处理的主要形式,除此之外还有throw语句,用于错误发生时主动抛出异常。

throw的语法:

throw expression


6.1.5 throws语句

通过throws来知道一个方法可能出现的异常。

public static void someMethod() throws Exception{

}


6.1.6 throws语句和方法重写

子类重写了父类的方法,子类中throws语句声明的异常类型必须和父类中被重写的方法的throws异常类型相同。


6.2断言(Assertion)

6.2.1 断言概述

断言是Java用来检查一个应该始终是真的条件,如果断言发现是假的,一个AssertionError异常就会被抛出。


6.2.2 断言语法:

assert 逻辑表达式[:细节信息];

注意:如果用的是Eclipse,assert默认是关闭的。


6.2.3 断言使用原则


相关文章
|
3天前
|
Java 开发者 UED
【实战宝典】Java异常处理大师级教程:throws关键字,让异常声明成为你的专属标签!
【6月更文挑战第19天】在Java中,`throws`关键字是异常处理的关键,它提升了方法签名的透明度和代码质量。不使用`throws`时,未捕获的异常可能导致程序崩溃。例如,`readFileContent`方法若不声明`throws IOException`,则隐藏了可能的风险。而明确声明如`throws IOException`,提醒调用者需处理异常,增强代码稳定性。
|
3天前
|
Java 程序员 数据库连接
处理Java异常
处理Java异常
12 4
|
4天前
|
前端开发 Java
【技术进阶】Java高手都在用的秘籍:自定义异常,让错误信息说话!
【6月更文挑战第19天】在Java中,自定义异常提升代码可读性和可维护性,提供针对特定错误的定制反馈。创建自定义异常涉及继承`Exception`类,如`CustomException`,并用它来抛出具有详细信息的错误。在实践中,可以为异常添加额外字段,如`DetailedException`的`errorCode`,以增强信息携带能力。使用自定义异常时,应明确目的、保持简洁、提供丰富信息并统一风格,使其成为高效错误处理的工具。
|
4天前
|
Java 程序员 开发者
【程序员必修课】那些年,我们踩过的Java坑:自定义异常,让你的代码不再“捉急”!
【6月更文挑战第19天】Java异常处理不仅是错误处理,更是程序健壮性的体现。自定义异常能提供更精确的错误信息,便于问题定位。通过继承`Exception`创建自定义异常类,如`NegativeValueException`,可使代码更优雅,降低维护难度。自定义异常还能携带额外信息,如错误代码,增强企业级应用的错误处理能力。善用自定义异常,提升代码质量和开发效率,是优秀编程实践的重要组成部分。
|
4天前
|
搜索推荐 Java 开发者
【实战指南】Java异常处理新高度:自定义异常,打造个性化的错误管理体系!
【6月更文挑战第19天】在Java中,自定义异常允许开发人员针对特定业务需求创建新的异常类型,增强代码可读性和维护性,特别是在大型项目中。它使错误处理更精确,避免通用异常的模糊性,提升程序稳定性。创建自定义异常需继承`Exception`或`RuntimeException`,提供有意义的构造函数,并注意序列化ID。使用时,通过`throw`抛出并在`try-catch`块中捕获。设计上,异常命名应明确,携带相关信息,避免过度使用,且保持一致性。自定义异常是构建健壮错误处理体系的关键。
|
8天前
|
Java 索引
[笔记] 疯狂JAVA讲义(第3版)第4章 流程控制与数组
[笔记] 疯狂JAVA讲义(第3版)第4章 流程控制与数组
|
8天前
|
Java 程序员 API
[笔记] 疯狂JAVA讲义(第3版)第3章 数据类型和运算符
[笔记] 疯狂JAVA讲义(第3版)第3章 数据类型和运算符
|
1天前
|
Scala
scala 读取文件(中文)异常 thread "main" java.nio.charset.MalformedInputException: Input length = 1
scala 读取文件(中文)异常 thread "main" java.nio.charset.MalformedInputException: Input length = 1
4 0
|
1天前
|
Java
springboot 异常java.net.BindException: Address already in use: bind
springboot 异常java.net.BindException: Address already in use: bind
5 0
|
2天前
|
Java 程序员 编译器
杨校老师课堂之Java基础异常专题知识点整理
杨校老师课堂之Java基础异常专题知识点整理
4 0