当前位置: 首页 > 网络应用技术

Java异常建筑和异常关键字

时间:2023-03-07 11:21:57 网络应用技术

  Java异常是Java提供的识别和响应错误的一致性机制。

  Java异常机制可以将异常处理代码与程序中的正常业务代码区分开,以确保程序代码更优雅并改善了强大的程序。

  Throwable是一个超级阶级,在Java语言中错误和异常。

  Throwable包含两个子类:错误(错误)和异常,通常用于指示异常。

  创建线程时,Throwable包含线程的快照。它提供诸如printstacktrace()之类的接口来获取诸如堆栈跟踪数据之类的信息。

  定义:错误类及其子类。程序中无法处理的错误表示正在运行的应用程序中的严重错误。

  功能:此类错误通常表明代码运行时JVM存在问题。通常有虚拟

  Machinerror(虚拟机运行错误),NoclassDeffoundError(类定义错误)

  等待。例如,OutofMemoryError:内存不足;stackoverflowerror:废物溢出。发生这种错误时,JVM将终止线程。这些错误不遭受异常和非代码错误。

  应处理此类错误。根据Java练习,我们不应该达到任何新的错误子类!

  该程序本身可以捕获和处理异常。外观分为两类:在运行时间期间异常和异常。

  异常定义的尺寸:RuntimeException类及其子类,表明在运行期间可能发生异常。

  功能:Java编译器不会检查它。。例如

  在竞标边界下,ClassCastException类型转换异常,算术敏感算术异常下的ArrayIndexOutBoundException阵列。类型异常不遭受异常。它们通常是由程序逻辑错误引起的。在程序中,您可以选择捕获治疗或不处理治疗。尽管Java编译器在运行时没有检查异常,但我们也可以使用投掷来进行声明

  出去,也可以通过try-catch捕获。如果运行时它是异常的,则需要修改代码以避免。例如,如果除法为零,则需要通过代码避免情况!

  RuntimeException将自动投掷并自动捕获Java虚拟机(即使我们不编写异常捕获语句,它也会丢弃错误!!!),这种异常情况是,代码本身应该存在逻辑上的问题。解决和改进代码。

  在汇编期间,异常定义:例外,除RuntimeException及其子类外。

  功能:Java编译器将检查它。如果此类异常出现在程序中,例如

  classNotFoundException(没有指定的类异常),ioexception(io流异常),要么通过投掷扔语句,要么通过try-catch捕获,否则无法编译。直接由系统提供。我们必须手动将捕获句子添加到代码中以处理异常。

  Java的所有异常都可以分为检查异常和非检查异常

  (取消选中例外)。

  对异常编译器的检查需要必须处理的例外。正确的程序经常出现并满足

  出口异常情况。在这种异常情况下,必须以某种方式对待。

  除Runtime Exception及其子类外,其他例外异常是异常检查。编译器将检查此类异常,也就是说,当编译器检查该应用程序是否可以在应用程序中执行此类异常,您将提示您处理此类异常。异常 - 使用try-catch捕获,或使用签名方法并将其在签名中使用。直接将关键字抛出,否则汇编将不会通过。

  非检查异常编译器将不会被检查,也不需要处理异常,这意味着,即使我们没有尝试捕获它,并且不使用thropt thropt this异常,编译还正常编译Alsowill通过。这种异常类型包括运行时异常(RuntimeException)和错误(错误)

  ?尝试 - 用于监视。在TRY语句块中放置了要侦听的代码(可能会从异常代码中扔出)。当Try语句块中发生异常时,异常会抛弃。

  ?捕获 - 用于捕获异常。捕获用于捕获试用语句块中的异常。

  ?最后 - 最后始终执行句子。它主要用于恢复在尝试块中打开的材料资源(例如数据库连接,网络连接和磁盘文件)。只有在执行完成后,最终后,它将回到尝试或捕获块中的返回或投掷语句。如果最终使用了终止方法(例如返回或投掷)的说明,则不会跳回执行并直接停止。

  ?投掷 - 抛出例外。

  ?throw-在方法签名中用于声明该方法可能会抛出的例外。

  Java通过面向对象的方法进行异常治疗。一旦将方法扔掉后,系统就会根据异常对象自动找到异常,以找到例外,对各种异常进行分类,并提供一个具有各种异常异常的好的异常,并提供一个很好的一个。是一对

  大象,它是可投掷类或其子类的实例。当方法出现异常时,会抛出异常的对象。该对象包含异常信息。称为此对象的方法可以捕获这种异常和过程。通过5个关键字来实现java的异常治疗:尝试,捕捉,投掷,投掷,最后。

  在Java应用中,异常处理机制被分为宣言异常,抛出异常并捕获异常。

  如果您觉得自己无法解决一些异常问题,并且不需要使用它来处理它,那么您可以抛出异常。直接关键字是方法内部可投掷类型的异常。可以抛出任何Java代码通过掷声明出于异常。

  该程序通常不会在运行前报告错误,但是运行后可能会出现一些未知错误,但您不想将其直接扔到上层。情况进行了相应的处理。

  通常,那些知道如何应对并继续通过不知道如何处理的异常情况的异常情况。通过异常可以使用抛出关键字来声明可能在方法签名上抛出的异常。

  有时我们会引发捕获的例外,目的是改变异常的类型。当它主要用于多系统集成中时,当子系统失败时,可能会有多种类型的异常类型。您可以使用统一类型的异常类型来暴露于外部,而不会暴露出过多的内部异常细节。

  您可以在尝试键入语句块中捕获多种异常类型,并为不同类型的异常做出不同的治疗方法

  相同的捕获也可以捕获多种类型的异常,使用|分离

  就习惯而言,定义异常类应包括两个构造函数,一个非吉尔森结构功能,一个具有详细的构造函数

  描述信息的结构函数(Throwable的ToString方法将打印这些详细信息,这在调试时很有用)

  当该方法中发生异常时,将不会执行异常之后的代码。如果之前需要发布某些本地资源,则需要调用在方法的正常末端和catch语句中释放本地资源的代码。预定语句可以解决此问题。

  调用此方法时,如果读取文件时发生异常,则代码将输入捕获代码块,然后输入最后的代码块;如果读取文件时没有异常,则您将直接跳过捕获代码块进入最终代码块。因此,代码是否发生在代码中,将执行Fianlly中的代码。如果捕获代码块包含返回,则语句,最终会执行代码吗?在上述代码中修改CACH子句如下:

  调用readFile方法,并观察是否在捕获子句中调用返回语句时是否执行了最终子句

  可以看出,即使捕获量包含返回语句,最后仍将执行“最后”子句。

  在上面的示例中,最终的关闭方法也可能会抛出IOException,该方法涵盖了原始异常。Java7提供了一种更优雅的方法来实现自动资源释放。自动释放资源以实现自动汇合的接口类。

  当Try代码块退出时,将自动调用Scanner.Close方法,并且扫描仪方法在最终代码块中不同,如果扫描仪。Close.close引发异常,将被抑制,原始异常被抛弃通过AddSusprsed方法将抑制性异常添加到原始异常中。如果您想获得异常异常列表,则可以调用getSuppresset方法获取。

  原始:https://juejin.cn/post/7102816921631850526