您的位置 首页 > 数码极客

java中如何解决异常淹没情况

在实际的开发过程中,往往会遇到各种各样的编程异常,如何处理这些异常,直接会影响到整个程序和系统的稳定性,如果不能在合适的地方抛出合适的异常或者是对异常进行捕获。那么就会影响到整个程序的运行。所以如何处理异常,是作为每个开发者来说必不可少的开发技能。

异常相关概念

Java中的异常是指,程序运行不能通过正常的方式来完成,可以通过抛出异常的方式来退出程序或者是退出某个方法,在异常中封装了方法执行过程中有可能出现的问题信息以及问题原因,在检查的时候也有利于程序员发现自己的问题。

在方法执行的过程中,当出现异常的时候,Java语言的异常处理机制会将代码的执行权交给异常处理器,异常处理器根据在系统中定义的异常处理规则执行不同的异常处理逻辑(抛出的异常或者捕获处理异常)。

异常的分类

如图所示,在Java中Throwable作为错误或者异常的父类,Throwable有可以分为Error和Exception。常见的Error有AWTError、ThreadDeath,而Exception又可以分为RuntimeException和CheckedException。等等

Error是指Java程序的运行错误,如果程序在启动的时候出现Error,则整个程序都会启动失败;如果程序在运行过程中出现Error,则整个的程序将会退出进程。出现Error通常是因为系统的内部错误导致或者是系统资源消耗殆尽所引起的,Error不能被在运行过程中被动态处理。如果程序出现了Error,则系统所能做的工作只能是记录错误的原因或者是安全终止程序运行状态。

Exception是指Java程序在运行过程中出现的异常,也就是程序在执行的过程中执行了开发者不想看到的代码,这样的异常是可以被Java的异常处理机制所处理的。Exception是整个的Java程序代码中最为核心的处理类。可以分为运行时异常RuntimeException和检查异常CheckedException。

RuntimeException:是指在程序运行过程中出现异常,RuntimeException可以被捕获并且处理,不会影响其他程序运行部分的结果。如果出现了RuntimeException,一定是程序中的某个逻辑出现了问题导致。常见的异常有NullPointerException、ArrayIndexOutOfBundsException等等。

CheckedException:是指在程序编译的时候Java编译器会检查代码并且捕获CheckedException,这就要求程序在需要的地方添加try catch语句来捕获并处理异常,常见的CheckedException有ClassNotFundException、SQLException等等。

异常处理方式

Java中异常处理的方式有两种,一种是自己利用try catch代码块进行捕获,另一种是抛出异常让异常处理机制进行处理。

  • 抛出异常:当我们在开发过程中,遇到异常如果不进行具体的处理,那么就要将异常抛出到调用者进行处理。而调用者有可能直接处理异常,也有可能继续向上抛出异常,常见的异常抛出的方式有三种形式 throws、throw、系统自动抛出异常。其中throws作用在方法上,可以抛出多个异常。throw作用在方法内,表明明确抛出的异常。
  • 使用try catch代码块进行捕获:使用try catch捕获异常的时候能够针对具体的某种异常进行处理,并且在捕获到异常之后进行相关内容的具体处理代码。


Throws与Throw的区别

  • 位置不同:Throws是作用在方法上的,而throw是作用在方法内部的
  • 功能不同:throws用来声明方法在运行过程中可能出现的异常有哪些,方便调用者可以根据不同的异常,进行预先的异常处理操作,throw 用来抛出已经封装好的异常对象,程序执行到throw的时候后续的代码将不会在执行。而是跳转到调用者的异常处理机制进行处理完成,也就是说throw后面的语句将无法执行,前提是除了finally代码块。



责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“java中如何解决异常淹没情况”边界阅读