首页 > Java > java教程 > 正文

Java的异常类型有哪些

藏色散人
发布: 2019-01-19 10:26:03
原创
8688人浏览过

错误是用户和程序员的祸根。开发人员显然不希望他们的程序在每次转弯时都掉下来,而用户现在已经习惯了在程序中出现错误,所以他们不情愿地接受为几乎肯定会出现至少一个错误的软件付出代价。

Java的异常类型有哪些

Java的设计目的是让程序员有机会设计一个没有错误的应用程序。当应用程序与资源或用户交互时,程序员可能会知道一些异常,这些异常是可以处理的。不幸的是,也有程序员无法控制或简单忽略的例外情况。简而言之,并不是所有的异常都是相同的,因此程序员需要考虑几种类型。

异常是导致程序无法在其预期的执行中运行的事件。异常有三种类型——检查异常、错误和运行时异常。

The Checked Exception(检查异常)

已检查异常是Java应用程序应该能够处理的异常。例如,如果应用程序从文件中读取数据,它应该能够处理FileNotFoundException。毕竟,无法保证预期的文件会出现在它应该出现的位置。文件系统上可能发生任何事情,应用程序对此一无所知。

立即学习Java免费学习笔记(深入)”;

让我们进一步看看这个例子。假设我们使用FileReader类来读取字符文件。如果你看一看Java api中的FileReader构造函数定义,你会发现它的方法签名:

public FileReader(String fileName)
throws FileNotFoundException
登录后复制

如您所见,构造函数明确声明FileReader构造函数可以抛出FileNotFoundException。这是有意义的,因为文件名字符串很可能会不时出错。请看下面的代码:

public static void main(String[] args){
FileReader fileInput = null;
//打开输入文件
fileInput = new FileReader("Untitled.txt");
}
登录后复制

从语法上来说,这些语句是正确的,但是这些代码永远不会编译。编译器知道FileReader构造函数可以抛出FileNotFoundException,而处理此异常则取决于调用代码。有两个选择-首先,我们可以通过指定一个throw子句来传递异常:

public static void main(String[] args) throws FileNotFoundException{
FileReader fileInput = null;
//打开输入文件
fileInput = new FileReader("Untitled.txt");
}
登录后复制

或者我们可以处理例外情况:

有道小P
有道小P

有道小P,新一代AI全科学习助手,在学习中遇到任何问题都可以问我。

有道小P 64
查看详情 有道小P
public static void main(String[] args){
FileReader fileInput = null;
try
{
//打开输入文件
fileInput = new FileReader("Untitled.txt");
}
catch(FileNotFoundException ex)
{
//告诉用户去找文件
}
}
登录后复制

编写良好的Java应用程序应该能够处理检查过的异常。

Errors(错误)

第二种异常称为错误。当异常发生时,JVM将创建一个异常对象。这些对象都派生自可抛出类。可抛出类有两个主要子类——错误和异常。Error类表示应用程序不太可能处理的异常。

这些例外被认为是罕见的。例如,JVM可能会因为硬件无法处理它必须处理的所有进程而耗尽资源。应用程序可以捕获错误并通知用户,但通常应用程序必须关闭,直到底层问题得到处理。

Runtime Exceptions(运行时异常)

发生运行时异常仅仅是因为程序员犯了错误。你已经写好了代码,编译器会觉得一切都很好当你运行代码时,它会崩溃,因为它试图访问一个不存在的数组元素或者一个逻辑错误导致一个方法被调用为空值。或者程序员可能犯的任何数量的错误。但是没关系,我们通过详尽的测试来发现这些异常,对吧?

错误和运行时异常属于未检查异常的类别。

以上就是Java的异常类型有哪些的详细内容,更多请关注php中文网其它相关文章!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号