iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java中为什么会出现Exception结构异常
  • 624
分享到

Java中为什么会出现Exception结构异常

javaexception中为 2023-05-31 10:05:40 624人浏览 安东尼
摘要

这期内容当中小编将会给大家带来有关Java中为什么会出现Exception结构异常,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. Java异常Exception的结构分析我们通常所说的Exceptio

这期内容当中小编将会给大家带来有关Java中为什么会出现Exception结构异常,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

1. Java异常Exception的结构分析

我们通常所说的Exception主要是继承于Throwable而来,可以参见如下的结构图示:

Java中为什么会出现Exception结构异常

主要的Throwable分为异常和错误两种,然后异常Exception和错误Error做为基类,分别被具体个性化以及衍生出NullPointerException、EOFException等等异常信息类。

基于Java中的源代码来分析,Error和Exception仅仅是继承了Throwable,做了构造函数的拓展,没有进行额外方法的延展;Exception输出的主要核心方法都是定义在Throwable中的,感兴趣的童鞋可以尝试阅读jdk的源代码。

Java中为什么会出现Exception结构异常

下面将介绍一下关键的几个异常类方法:

getMessage(): String

输出异常的描述信息

getLocalizedMessage()

输出本地化的描述信息,一般此方法可被子类所覆盖,缺省实现与getMessage()输出信息一致

printStackTrace()

将异常栈打印到输出流中,此为一类方法,默认打印到console控制台,也可以显式指定输出流。

fillInStackTrace()

将当前的异常栈保存到一个Throwable中,返回这个Throwable。大部分情况下,用在保留异常栈嵌套调用的情况,尝试保留完整的异常栈,无需使用该方法。

2. Error vs Exception

Error在Java体系中定义为不可控制的问题,往往用来描述系统错误或者底层的问题,比如虚拟机错误,例如内存空间不足,方法调用栈溢等。我们以上图中列举出的内存溢出错误(StackOverflowError)为例,它是在JVM层面发生的错误,已经游离于java应用层之外;在应用程序层面是无法进行捕获,且无法从错误中恢复的。一般一旦发了类似问题,一般都是直接宕机,应用停止正常的工作,需要重新启动或者修复问题之后,方可重新正常工作。

Exception一般发生在应用层,即在由项目中的Java代码层面引发的问题,且可以尝试进行捕获,此类问题不会影响到应用程序的正常工作的,即不会导致宕机现象的发生。我们在工作或者代码中常见的都是Exception衍生出来的各类异常。

这里需要强调说明一下,JVM是Java语言的运行环境和平台,但是并不是Java语言体系的一个部分;在JVM平台上,还可以运行Groovy, Jpython, JRuby, Closure,Scala等等遵守Java语言规范(JavaLanguage Specification)的编程语言,故我们可以将Error理解为脱离Java应用之外的问题。

3. Exception中的运行时异常(RuntimeException)和受控异常(checked exception)

运行时异常(RuntimeException)是指在运行之时发生的异常,无需显式地进行捕获;如果程序中发生类似的异常,JVM会直接抛出此类异常,并打出响应的异常栈信息。此类异常也通常被称为unchecked exception, 未受控异常。

受控异常(checked Exception)是我们最常见的异常种类,在代码中使用的异常基本上都是此类异常,此类异常会在代码编译阶段由Java编译器进行语法检查,如果未显式进行异常捕获,则会报出相应的编译异常信息。

4. 如何在代码中正确打印异常信息

下面我们将通过一系列的例子来说明上述几个Exception中方法的使用技巧。

Case 1: getMessage()/getLocalizedMessage()

public void testCase1() {System.out.println("We are Going to do something interesting....");try {throw new NullPointerException("I am an exception in the code.");} catch (Exception e) {System.out.println("We got unexpected:" + e.getMessage());System.out.println("We got unexpected:" + e.getLocalizedMessage());}}

--结束END--

本文标题: Java中为什么会出现Exception结构异常

本文链接: https://www.lsjlt.com/news/225017.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java中为什么会出现Exception结构异常
    这期内容当中小编将会给大家带来有关Java中为什么会出现Exception结构异常,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. Java异常Exception的结构分析我们通常所说的Exceptio...
    99+
    2023-05-31
    java exception 中为
  • redis为什么会出现异常
    这篇文章主要介绍了redis为什么会出现异常,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Exception in th...
    99+
    2024-04-02
  • 为什么会出现 ClassCastException 异常
    ClassCastException 异常是指在一个对象向下转型时发生的异常。出现该异常的原因可能有以下几种:1. 对象的类型与转型...
    99+
    2023-08-18
    异常
  • cdn为什么会异常
    cdn会异常的原因:如果CDN服务商的硬件投入不够,那么就会出现不稳定情况,甚至影响索引量数据,因此选择有实力的CDN服务商很重要。缓存机制在网站出现死链、无法打开、被黑等情况时会异常。并且会在短时间内产生了一些不利快照影响排名。因此需及时...
    99+
    2024-04-02
  • 计算机网络中为什么会出现网络连接异常
    这篇文章主要介绍计算机网络中为什么会出现网络连接异常,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!原因有:1、宽带本身的问题,直接联接宽带网线测试;2、路由器的问题,恢复出厂设置;3、网卡驱动没有或不合适引起的,网线...
    99+
    2023-06-20
  • 香港服务器为什么会出现异常大流量
    香港服务器会出现异常大流量的原因:1、香港服务器网站规模较大,用户访问量需求大导致;2、香港服务器的网站页面设计不合理,导致网站页面太大;3、香港服务器中的网站内容被盗链或提供数据下载导致;4、香港服务器正在遭受恶意流量攻击。具体内容如下:...
    99+
    2024-04-02
  • seo之搜索引擎蜘蛛为什么会出现抓取异常
    这篇文章给大家分享的是有关seo之搜索引擎蜘蛛为什么会出现抓取异常的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。有一些网页内容优质,用户也可以正常访问,但是搜索引擎蜘蛛却无法正常访问并抓取,造成搜索结果覆盖率缺失...
    99+
    2023-06-10
  • Java中抛出异常和捕获异常有什么区别
    这篇文章主要介绍Java中抛出异常和捕获异常有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!抛出异常:创建异常对象,封装异常信息然后通过throw将异常对象传递给调用者。不对异常进行处理只对异常进行抛出是非常...
    99+
    2023-06-15
  • Java中为什么需要慎用异常
    这篇文章给大家分享的是有关Java中为什么需要慎用异常的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。慎用异常在Java软件开发中,经常使用 try-catch 进行错误捕获,但是,try-catch 语句对系统性...
    99+
    2023-06-27
  • 浅谈Thread.sleep()为什么要抛出中断异常
    从场景说起 假设sleep()方法不抛出中断异常,也就是线程没有中断响应能力,会怎么样? 考虑如下场景: 线程A:sleep中 线程B:A别睡了,要关机啦(向A发送中断信号) 线程A...
    99+
    2023-05-17
    Thread.sleep()中断 Thread.sleep()中断异常
  • java抛出异常后继续运行会怎么样
    Java抛出异常后,如果没有进行异常处理,程序将会停止执行,并打印异常信息到控制台。如果想要继续运行程序,可以使用try-catch...
    99+
    2023-10-18
    java
  • java常用数据结构是什么
    这篇文章将为大家详细讲解有关java常用数据结构是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。java数据结构有:1、数组;2、链表,一种递归的数据结构;3、栈,按照“后进先出”、“先进后出”的原则...
    99+
    2023-06-14
  • Java中异常是什么
    这篇文章将为大家详细讲解有关Java中异常是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。基础概念  (1)异常:Java程序在运行时期发生的不正常情况。     Java就按照面向对象的思想对不正常...
    99+
    2023-06-20
  • java常见的数据结构是什么
    今天小编给大家分享一下java常见的数据结构是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。本教程操作环境:window...
    99+
    2023-06-30
  • DB为什么会大量出现select @@session.tx_read_only
    小编给大家分享一下DB为什么会大量出现select @@session.tx_read_only,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!发现问题在一次捞取Top SQL中,发现DB大...
    99+
    2024-04-02
  • 在Java项目中运行异常处理时出现异常怎么解决
    这篇文章将为大家详细讲解有关在Java项目中运行异常处理时出现异常怎么解决,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。  Java异常处理运行时异常(RuntimeExcepti...
    99+
    2023-05-31
    java 异常处理 ava
  • Java中出现java.lang.IllegalStateException异常错误的解决
    目录java.lang.IllegalStateException异常错误的解决java.lang.IllegalStateException: 启动子级时出错1、情况一:@WebS...
    99+
    2023-01-09
    Java异常错误 java.lang.IllegalStateException异常错误 Java异常解决
  • java项目中出现异常如何解决
    本篇文章为大家展示了java项目中出现异常如何解决,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对象...
    99+
    2023-06-14
  • 为什么TypeScript的Enum会出现问题
    目录发生了什么呢?什么时候用控制枚举的数字Bit值控制索引非数字枚举结论TypeScript引入了很多静态编译语言的特性,比如class(现在是JavaScript的一部分了),in...
    99+
    2024-04-02
  • 租用香港服务器为什么会出现网络不正常
    租用香港服务器会出现网络不正常的原因:1、香港服务器系统资源不足导致;2、过度使用防火墙配置香港服务器导致网速变慢;3、目标网站所在的香港服务器带宽不足或负载过大导致;4、香港服务器正在遭受木马病毒攻击导致。具体内容如下:系统资源不足您可能...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作