首页编程throwable?throwable和Exception的区别(详细一点)

throwable?throwable和Exception的区别(详细一点)

编程之家2023-11-03118次浏览

朋友们,你是否曾想过深入了解throwable和throwable和Exception的区别(详细一点)的内涵?在本文中,我将为你详细解析这两个话题,希望能给你带来全新的视角和思考。

throwable?throwable和Exception的区别(详细一点)

throwable和Exception的区别(详细一点)

throwable和exception的区别:

1、throwable是父类,exception是子类。

2、throwable是根基,exception是从throwable派生出来的。

3、throwable中包括exception(异常)和error(错误)。

4、throwable用来定义所有可以作为异常被抛出来的类,exception专指程序本身可以处理的异常,一般性的异常。

在Java程序中,所有异常对象的根基类是Throwable,Throwable从Object直接继承而来(这是Java系统所强制要求的)。Throwable有两个重要的子类:Exception(异常)和 Error(错误),二者都是 Java异常处理的重要子类,各自都包含大量子类。

throwable?throwable和Exception的区别(详细一点)
扩展资料:

Error(错误)是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时JVM(Java虚拟机)出现的问题。Exception(异常)是程序本身可以处理的异常。

Error是一种严重的问题,应用程序不应该捕捉它。Exception一般可能是程序和业务上的错误,是可以恢复的。

Throwable的使用

使用Throwable一个很大的好处在于,他能保存他被实例化的方法的堆栈信息,通过方法:

可以将他和他的cause Throwable和他的cause的cause...(递归)的堆栈信息都打印出来。

throwable?throwable和Exception的区别(详细一点)

而例如我们要将一个Throwable对象的堆栈信息不仅仅是输出到控制台,还要保存到本地日志或者发送到服务器呢?那么就要将Throwable的堆栈信息提取出来。

令人开心的是, android.util.Log类提供了这么一个工具方法:

通过该方法,可以直接把 Throwable对象的堆栈信息都拿出来了。

他有4个构造方法。每个构造方法都会调用 fillInStackTrace()来记录当前的堆栈信息。

只有两个参数可选:String类型的message,和他的cause Throwable。

那么现在来看一下这两个变量对Throwable有什么用,以及对我们来说有什么意义。

先说结论: detailMessage和 cause变量在调用 printStackTrace()的时候都会被打印出来。

看下 printStackTrace()

看下 toString是如何包含 message进来的:

看下打印cause:

可以发现, printEnclosedStackTrace()方法中又调用了 getCause()和 printEnclosedStackTrace(),那么其实就是一个递归,直到递归到最根源的那个cause。

那么当我们要构造一个 Throwable对象的时候,如果上下文中有一个关联的 Throwable,那么把他作为cause参数来构造新的 Throwable对象,这样能更好地记录问题真正的原因。

catch,Throwable或Exception,有什么区别

catch

n.捕捉,陷阱,捕获物

v.抓住;赶上,了解,感染

Throwable可投掷的

exception n.例外

Please read:

Java语言要求java程序中(无论是谁写的代码)所有抛出(throw)的异常都必须是从Throwable派生而来.当然,实际的Java编程中,由于JDK平台已经为我们设计好了非常丰富和完整的异常对象分类模型.因此,java程序员一般是不需要再重新定义自己的异常对象.而且即便是需要扩展自定义的异常对象,也往往会从Exception派生而来.所以,对于java程序员而言,它一般只需要在它的顶级函数中catch(Exception ex)就可以捕获出所有的异常对象.所有异常对象的根基类是 Throwable,Throwable从Object直接继承而来(这是java系统所强制要求的),并且它实现了 Serializable接口(这为所有的异常对象都能够轻松跨越Java组件系统做好了最充分的物质准备).从Throwable直接派生出的异常类有Exception和Error.Exception是java程序员所最熟悉的,它一般代表了真正实际意义上的异常对象的根基类.也即是说,Exception和从它派生而来的所有异常都是应用程序能够catch到的,并且可以进行异常错误恢复处理的异常类型.而Error则表示Java系统中出现了一个非常严重的异常错误,并且这个错误可能是应用程序所不能恢复的,例如LinkageError,或 ThreadDeath等.,1,catch,Throwable或Exception,有什么区别?

I think I was asking about the java-Programming language instead of English,okay?

Throwable怎么读啊 java里的所有的子类啊

Java异常结构

异常时程序运行过程中产生的错误。

异常处理框架时java语言健壮性的一个重要体现。

Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。

在java API中已定义了许多异常类,这些异常类分为两大类,错误类Error和异常Exception。

Java异常体系结构呈树状,其层次结构如图:

Thorwable类所有异常和错误的超类,有两个子类Error和exception,分别表示错误和异常。

其中异常类Exception又分为运行时异常(RuntimeException)和检查异常(Checked Exception)。

两者的区别:

Error和Exception

Error是程序无法处理的错误,比如OutOfMemoryError、ThreadDeath等。这些异常发生时,java虚拟机(JVM)一般会选择线程终止。

Exception是程序本身可以处理的异常,这种异常分两大类:运行时异常和非运行时异常。程序中应当尽可能去处理这些异常。

运行时异常和非运行时异常

运行时异常都是RuntimeException类及其子类异常,如NullPointerException、IndexOutOfBoundsException等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是有程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。

非运行时异常是RuntimeException以外的异常,类型上属于Exception类及其子类。从程序角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等以及用户自定义的Exception异常,一般情况下自定义检查异常。

好了,文章到这里就结束啦,如果本次分享的throwable和throwable和Exception的区别(详细一点)问题对您有所帮助,还望关注下本站哦!

countif函数的使用方法(COUNTIF函数怎么用)德州网站推广 德州哪个网络公司做网站和推广的效果好