云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名交易_升级云存储空间_促销

小七 141 0

Java.lang.VirtualMachine错误当Java虚拟机遇到任何内部错误或资源限制而无法运行时抛出。这是JVM用来防止整个应用程序崩溃的自我防御机制。在本文中,我们将讨论不同类型的虚拟机错误,它们的特点,它们被触发的原因和修复它们的潜在解决方案。

有四种不同类型的虚拟机器错误:

a.OutOfMemoryError

b.StackOverflowerError

c.InternalError

d.UnknownError

让我们在本节详细回顾这些类型

图:Java Throwable类层次结构

就像OMG(哦,天哪)的缩写一样,服务器云平台,OOM(OutOfMemoryError)在DevOps社区中非常流行:-)。大多数DevOps工程师认为有一个OutOfMemoryError。但是OutOfMemoryError有8种不同的风格:

每种风格的触发原因不同。类似地,云服务器怎么用,OutOfMemoryError的每种风格的解决方案也不同。这是一个漂亮的单页文档,总结了OutOfMemoryError的所有不同类型、原因和解决方案。

一般来说,OutOfMemoryError可以通过分析垃圾收集日志和堆转储来诊断和修复。由于手动分析垃圾收集日志可能会很乏味,因此您可以考虑使用诸如GCeasy、HP Jmeter、ibmgc analyzer之类的免费工具。类似地,为了分析堆转储,您可以考虑使用免费工具,如:HeapHero、Eclipse MAT。

线程的堆栈正在存储有关它正在执行的方法、原始数据类型值、局部变量、对象指针和返回值的信息。它们都消耗内存。如果线程的堆栈大小超出了分配的内存限制,那么java.lang.StackOverflower错误被抛出。当线程由于执行程序中的错误而一次又一次地递归调用同一函数时,大数据的培训,通常会发生此问题。更多关于如何调试StackOverflower的细节和所有可能的解决方案可以在本文中找到java.lang.InternalError错误当出现:

时由JVM抛出,但很少会遇到内部错误。要了解哪些特定场景可能导致InternalError,可以在Oracle的javabug数据库中搜索"InternalError"字符串。在撰写本文时(2018年12月20日),Oracle java bug数据库中仅报告了200个此错误的缺陷。大部分是固定的java.lang.UnknownError错误在发生异常或错误,但Java虚拟机无法报告实际的异常或错误时引发。你很少会看到未知的错误。实际上,购买云服务器,在撰写本文时(2018年12月20日),在Oracle Java Bug数据库中搜索"UnknownError"时,只发现了两个报告的缺陷:

VirtualMachineError有两个主要特征:

让我们在本节中讨论这两个特征。

有两种类型的异常:

异常在编译时被检查,称为checked Exception。如果代码中的某些方法抛出选中的异常,则该方法必须处理该异常,或者必须使用throws关键字指定该异常。已检查异常的示例有:IOException、SQLException、DataAccessException、ClassNotFoundException…

未检查异常没有此要求。他们不必被抓住或宣布被扔。所有类型的VirtualMachineError都是未检查的异常,

异常可以以两种方式抛出:

同步异常发生在特定的程序语句中,云店,无论程序在类似的环境中执行多少次。同步异常的例子有NullPointerException、ArrayIndexOutOfBoundException等……

异步异常可以发生在任何时间点,也可以发生在程序语句的任何部分。在可以抛出的地方没有一致性。所有VirtualMachineError都是异步抛出的,但有时也可以同步抛出。由于本机方法执行或Java虚拟机资源的限制,可以通过方法调用同步抛出StackOverflowerError,也可以异步抛出。类似地,OutOfMemoryError可以在对象创建、数组创建、类初始化和装箱转换期间同步抛出,也可以异步抛出。