重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍Java中异常类型是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
十余年建站经验, 网站制作、做网站客户的见证与正确选择。成都创新互联公司提供完善的营销型网页建站明细报价表。后期开发更加便捷高效,我们致力于追求更美、更快、更规范。错误是用户和程序员的祸根。开发人员显然不希望他们的程序在每次转弯时都掉下来,而用户现在已经习惯了在程序中出现错误,所以他们不情愿地接受为几乎肯定会出现至少一个错误的软件付出代价。
Java的设计目的是让程序员有机会设计一个没有错误的应用程序。当应用程序与资源或用户交互时,程序员可能会知道一些异常,这些异常是可以处理的。不幸的是,也有程序员无法控制或简单忽略的例外情况。简而言之,并不是所有的异常都是相同的,因此程序员需要考虑几种类型。
异常是导致程序无法在其预期的执行中运行的事件。异常有三种类型——检查异常、错误和运行时异常。
The Checked Exception(检查异常)
已检查异常是Java应用程序应该能够处理的异常。例如,如果应用程序从文件中读取数据,它应该能够处理FileNotFoundException。毕竟,无法保证预期的文件会出现在它应该出现的位置。文件系统上可能发生任何事情,应用程序对此一无所知。
让我们进一步看看这个例子。假设我们使用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"); }
或者我们可以处理例外情况:
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中异常类型是什么的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联成都网站设计公司行业资讯频道!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。