首页 > 其他分享 >动手动脑 异常处理

动手动脑 异常处理

时间:2023-10-17 21:33:57浏览次数:39  
标签:语句 处理 抛出 动脑 动手 finally catch 异常

1.

 

异常处理:Try{ //可能发生运行错误的代码;}

          catch(异常类型     异常对象引用){ //用于处理异常的代码;}

          finally{ //用于“善后” 的代码;}

(1)把可能会发生错误的代码放进try语句块中。

(2)当程序检测到出现了一个错误时会抛出一个异常对象。异常处理代码会捕获并处理这个错误。

(3)catch语句块中的代码用于处理错误。

(4)当异常发生时,程序控制流程由try语句块跳转到catch语句块。

(5)不管是否有异常发生,finally语句块中的语句始终保证被执行。

如果没有提供合适的异常处理代码,JVM将会结束掉整个应用程序。

Java中的异常分类:

Throwable类有两个直接子类: Exception:出现的问题是可以被捕获的; Error:系统错误,通常由JVM处理。 可捕获的异常又可以分为两类: (1)Check异常:直接派生自Exception的异常类,必须被捕获或再次声明抛出 (2)Runtime异常:派生自RuntimeException的异常类。使用throw语句可以随时抛出这种异常对象: throw new ArithmeticException(…);

2.

 3.

 4.

 

当有多个嵌套的try…catch…finally时,要特别注意finally的执行时机。
当有多层嵌套的finally时,异常在不同的层次抛出 ,在不同的位置抛出,可能会导致不同的finally语句块

 5.

 

 

 

  finally不一定执行,当catch()从句中有System.exit()语句即程序退出时,finally()就不会被执行。

 6.

 

 7.

异常处理:

try

{

需要检测的代码;

}

catch(异常类 变量)

{

异常处理代码;

}

finally

{

一定会执行的代码;

}

  异常处理的嵌套。

     异常处理流程代码可以放在任何能放可执行性代码的地方,因此完整的异常处理流程既可放在try块里,也可放在catch块里,也可放在finally块里。

     异常处理嵌套的深度没有明确的限制,但通常没有必要使用超过两层的嵌套异常处理,层次太深的嵌套异常处理没有太大必要,而且导致程序可读性降低。

checked异常与Runtime异常:

      Java的异常被分为两大类:Checked异常和Runtime异常(运行时异常)。所有RuntimeException类及其子类的实例被称为Runtime异常;不是RuntimeException类及其子类的异常实例则被称为Checked异常。

Checked异常的处理:

     当前方法明确知道如何处理该异常,程序应该使用try...catch块来捕获该异常,然后在对应的catch块中修改该异常。当前方法不知道如何处理这种异常,应该在定义该方法时声明抛出该异常。 

Runtime异常的处理:

     Runtime异常则更加灵活,Runtime异常无需显示声明抛出。如果程序捕捉Runtime异常,也可以使用try...catch块来捕捉Runtime异常。

使用throws声明抛出异常:

      throws声明抛出异常的思路是:当前方法不知道应该如何这种类型的异常,该异常应该由上一级调用者处理,如果main方法也不知道应该如何处理这种类型的异常,也可以使用throws声明抛出异常,该异常交给JVM处理。JVM对异常的处理方法是:打印异常跟踪栈信息,并中止程序的运行,这就是程序在遇到异常后自动结束的原因。

      throws声明抛出只能在方法签名中使用,throws可以声明抛出多个异常类,多个异常类之间以逗号隔开。

      如果需要在程序中自行抛出异常,应使用throw语句,throw语句可以单独使用,throw语句抛出的不是异常类,而是一个异常实例,而且每次只能抛出一个异常实例。throw语句的语法格式如下:throw ExceptionInstance;

     如果throw语句抛出的异常是Checked异常,则该throw语句要么处于try块里,显示捕获该异常,要么放在一个带throws声明抛出的方法中,即把该异常交给方法的调用者处理。

异常处理原则:

    不要过度使用异常;

    不要使用过于庞大的try块;

    避免使用Catch AII 语句;

    不要忽略捕获到异常。

 

标签:语句,处理,抛出,动脑,动手,finally,catch,异常
From: https://www.cnblogs.com/azure011328/p/17770756.html

相关文章

  • 异常处理
    当在Java项目中编写代码时,异常处理是一个至关重要的方面。异常是在程序执行过程中可能出现的问题或错误的表示。在Java中,异常处理是一种机制,用于识别、处理和解决这些问题,以确保程序能够正常运行。本文将总结Java项目中常见的异常处理情况,以帮助开发人员更好地理解如何处理异常并......
  • Java项目中常用的异常处理
    1.空指针异常(java.lang.nullpointerexception)发生该情况一般是字符串变量未初始化,数组未初始化,类对象未初始化等。还有一种情况是当该对象为空时你并没有判断是否为空值,这个错误我在之前的web习题上犯过,因此为了避免这种情况,除了检查是否初始化之外,如有必要则要加上判断是否为nul......
  • 解决winform 窗体设计器异常的问题
    如上图大家肯定都遇到过这样的棘手的问题。一般情况都是自己代码问题,有时解决了代码bug,项目运行无错但设计器还不能正常显示。你可能尝试下如下方法解决此问题:1、生成改X862、生成改anycpu3、清理解决方案4、清理项目5、重新生成解决方案6、重新生成项目7、复制某一个窗体,删......
  • 遇到系统风控审核升级维护导致注单存在异常不给提款要怎么办?
    尊敬的读者,我们深知您在网上的每一分钱都来之不易,因此我们这篇文章将为您解决一个非常关键的问题:当您遇到提款受限以及系统升级维护、注单异常等复杂情况时,如何保护自己的利益并尽快恢复正常的提款流程?首先,让我们明确一个重要的事实:当您遇到系统升级维护或注单异常时,第一步应该是保......
  • 首页database SQL Server异常代码处理的深入讲解
    SQLServer异常代码处理的深入讲解在SQLServer中,异常代码处理(ExceptionHandling)是非常重要的技术之一。良好的异常处理可以帮助我们更好地处理运行中的错误,保障系统的稳定性和安全性。本文将深入讲解SQLServer异常代码处理,包括常见的异常类型、异常处理方式及异常处理的最......
  • 异常捕捉
     publicclassCatchWho{publicstaticvoidmain(String[]args){try{try{thrownewArrayIndexOutOfBoundsException();}catch(ArrayIndexOutOfBoundsExceptione){System.out.pri......
  • 异常处理
    什么是异常?在编程中,异常是指在程序执行期间出现的不正常情况,它可能导致程序终止或产生意外结果。Java异常类型Java中的异常分为两大类:编译时异常和运行时异常。让我们深入了解一下它们以及一些常见的异常类型。编译时异常编译时异常是在编译Java代码时由编译器强制执行的异常......
  • Java 中的异常处理
    在Java中,异常是中断程序正常流程的事件。当发生意外情况时,会引发异常。如果没有正确的处理,这些异常可能会使您的程序崩溃。Java提供了强大的异常处理机制,确保您的代码能够优雅地处理意外情况。异常可能由多种因素引起,例如:用户输入错误硬件故障网络连接错误数据库错误编程......
  • day02-异常
    异常异常(Exception)指程序运行中出现的不期而至的各种情况,发生再程序运行期间,影响了正常的程序执行流程。 异常的分类检查性异常。最具有代表性的检查性异常是用户错误或问题引起的异常。运行时异常错误ERROR错误不是异常,而是脱离程序员控制的问题 异常体系......
  • 软件测试|selenium 元素无法选择异常的原因及解决
    SeleniumElementNotSelectableException异常:原因及解决方法简介在进行Web自动化测试时,使用Selenium可能会遇到各种异常情况。其中之一就是ElementNotSelectableException异常,该异常通常意味着在尝试选择一个不可选元素时出现了问题。本文将详细介绍这个异常的原因、可能的......