IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java程序设计基础第九章异常处理 -> 正文阅读

[Java知识库]java程序设计基础第九章异常处理

异常和错误

异常是指在程序运行中由代码产生的一种错误。
当程序不能正常运行时,就说明了程序中出现了错误,错误按照其性质可以分为三种:语法错(编译错误)、语义错(运行错)和逻辑错。
程序运行时出的错可以分为两类:错误和异常
错误是指程序在执行过程中所遇到的硬件或操作系统的错误,如内存溢出、 虚拟机错等。而异常则是指在硬件和操作系统正常时,程序遇到的运行错。
异常对于程序而言是非致命性的,但错误对于程序而言则是致命性的。
java语言中所有异常都是以类的形式存在的,除了内置的异常类之外,java语言也允许用户自定义异常类。
每当程序发生了异常事件,即代表产生了异常的一个"异常对象"。
生成异常对象并把它交给运行系统的过程称为抛出异常。这个对象可能由应用程序本身产生,也可能由java虚拟机产生,这取决于产生异常的类型。
在java语言中定义了许多异常类,每一种异常类都代表了一种运行错误,类中也包含了该运行错误的信息和处理错误的方法等内容。
每当java运行过程中发生一个可识别的运行错误时,即该错误由一个异常类与之对应时,系统都会产生一个相应的该异常类的对象。一旦一个异常对象产生了,系统中就一定有相信的机制来处理它。如果异常处理程序捕获到的异常类型和这个程序能够处理异常的类型相同,那么这个程序就叫作合适的异常处理程序,然后异常处理机制将控制权从发生异常的程序交给能处理该异常的异常处理程序;如果没有找到合适的异常处理程序,运行时环境将终止程序执行。

异常处理类

在异常类层次的最上层有一个单独的类叫作Throwable,它是java.lang包中的一个类。这个类可以处理所有的异常情况,该类派生了两个子java.lang.Error和java.lang.Exception。其中,Error子类由系统保留,因为该类定义了那些应用程序通常无法捕捉到的错误。Error及其子类的对象,代表了程序运行时java系统内部的错误。
Exception类对象时java程序抛出和处理的对象。由于应用程序不处理Error类,所以一般所说的异常都是指Error及其子类。
Exception类的两个构造方法:
public Exception();
public Exception(String s);
第二个构造方法可以接收字符串参数传入的信息,该消息通常是该异常所对应的错误的描述。
Exception类从父类Throwable那里继承了若干方法。常用的两个:
public String toString():该方法返回描述当前Exception类信息的字符串
public void printStackTrace():该方法没有返回值,它的功能是完成一个输出操作,在当前的标准输出设备(一般时屏幕显示器)上输出当前异常对象的堆栈使用轨迹。
在Exception类中由一个子类RuntimeException代表运行时的异常,它是程序运行时自动地对某些错误作出反应而产生的,所以RuntimeException可以不编写异常处理的程序代码,依然可以成功编译。
程序对异常与错误的处理方式有三种:一是程序不能处理的错误;二是程序应避免而可以不去捕获的运行时异常;三是必须捕获的非运行时异常。

异常的处理

使用try-catch-finally语句
try
{
要检查的语句序列
}
catch(异常类名 形参对象名)
{
异常发生时的处理语句序列
}
finally
{
一定会运行的语句序列
}
注意:如果程序产生的异常过多,可以直接在方法头的地方用throw Exception来解决或者用多个catch语句。

抛出异常

抛出异常具体分为:
(1)系统自动抛出的异常
(2)指定方法抛出异常
抛出异常的方法
方式一:在方法体内使用throw语句抛出异常对象。语法格式为:
throw 由异常类产生的对象;
方式二:在方法头部添加throws子句表示方法将抛出异常。语法格式为:
[修饰符] 返回值类型 方法名([参数列表])throws 异常类列表

自动关闭资源的try语句

try-with–resources语句的语法格式:
try(声明或初始化资源的代码)
{
使用资源对象res语句
}
try后面括号里面时声明、初始化一个或多个资源的语句,当有多个资源时用“;”隔开,当try语句执行结束时会自动关闭这些资源。
注意:并给所有的资源都可以自动关闭,只有实现java.lang.AutoCloseable接口的那些资源才可以自动关闭,该接口只有一个抽象方法:
void close() throws Exception
自动关闭资源的try语句相当于包含了隐式的finally语句块,该finally语句块会自动调用res.close()方法关闭前面所访问的资源。所以说,自动关闭资源的try语句后面既可以没有catch块也可以没有finally块。如果程序需要,自动关闭资源的try语句后面也可以带有一个或多个catch块和一个finally块。如果在try-with-resources语句中含有catch和finally子句,则catch和finally子句将会在try-with-resources语句中打开的资源被关闭之后得到调用。
注意:java.io.Closeable接口继承了AutoCloseable接口,这两个接口被所有的i/o流类实现。因此,在使用i/o流时,可以使用try-with-resources语句。

自定义异常类

用户自定义异常类主要用来处理用户程序中可能产生的逻辑错误,使得这种错误能够及时被系统及时识别并处理,而不致扩散产生更大的影响,从而使用户程序有更好的容错性能,并使整个系统更加稳定。
自动异常类需要以下几步:
(1)声明一个新的异常类。该类必须时Throwable类的直接或间接子类。一般以Exception类为直接父类,也可以使用某个已经存在的系统异常类或用户自己定义的异常类为其父类。
(2)为用户自定义的异常类定义属性和方法,或覆盖父类的属性和方法。一般在自定义异常类加入两个构造方法分别时没有参数的构造方法和含有字符型参数的构造方法
注意:用户自定义异常不能由系统自动抛出,因而必须借助于throw语句来定义何种情况算时产生了此种异常对应的错误,并抛出这个异常类的对象。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-28 11:07:59  更:2021-11-28 11:10:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:11:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码