首页
学习
活动
专区
圈层
工具
发布

Java异常小结

题目:请聊一下,你对java异常的理解?区分一下运行时异常和一般异常有何异同?你在平时工作中遇到的异常类有哪些,详细说明一下这些异常是怎么产生的? 1 Java异常的理解?...处理过程:产生异常状态时,如果当前的context不具备处理当前异常的能力,将在heap上new出来一个异常对象,停止当前的执行路线,把产生的异常对象抛给更高层的context。...3 遇到的异常类有哪些?产生的原因? NullPointerException:空指针。 ArrayIndexOutOfBoundsException:数组越界。...ExceptionInInitializerError:静态初始值或静态变量初始值期间发生异常。 UnsatisfiedLinkError:JNI加载dll或者so文件时未找到。...3 检查对数据库查询中,是否有一次获得全部数据的查询。一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。

59720
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java中的异常总结

    这些问题通常描述一些不应被应用程序捕获的反常情况。 java.lang.ExceptionInInitializerError 初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异常时抛出。...当一个应用试图通过Java的new操作符构造一个抽象类或者接口时抛出该异常. java.lang.InternalError 内部错误。用于指示Java虚拟机发生了内部错误。...java.lang.ClassCastException 类造型异常。假设有类A和B(A不是B的父类或子类),O是A的实例,那么当强制将O构造为类B的实例时抛出该异常。...当访问某个类的不存在的方法时抛出该异常。 java.lang.NullPointerException 空指针异常。当应用试图在要求使用对象的地方使用了null时,抛出该异常。...是所有Java虚拟机正常操作期间可以被抛出的异常的父类。 java.lang.SecurityException 安全异常。由安全管理器抛出,用于指示违反安全情况的异常。

    1.9K30

    常见的几种RuntimeException

    java.lang.ExceptionInInitializerError 初始化程序错误。当运行一个类的静态初始化程序的过程中,发生了异常时抛出。...当一个应用试图通过Java的new操作符构造一个抽象类或者接口时抛出该异常. java.lang.InternalError 内部错误。用于指示Java虚拟机发生了内部错误。...当应用试图通过反射方式创建某个类的实例、訪问该类属性、调用该类方法,而当时又无法訪问类的、属性的、方法的或构造方法的定义时抛出该异常。...java.lang.NullPointerException 空指针异常。当应用试图在要求使用对象的地方使用了null时,抛出该异常。...由安全管理器抛出,用于指示违反安全情况的异常。 java.lang.StringIndexOutOfBoundsException 字符串索引越界异常。

    1.3K10

    JDK源码解析之 java.lang.Exception

    java.lang.ExceptionInInitializerError 初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异常时抛出。...当一个应用试图通过Java的new操作符构造一个抽象类或者接口时抛出该异常. java.lang.InternalError 内部错误。用于指示Java虚拟机发生了内部错误。...当某个线程试图等待一个自己并不拥有的对象(O)的监控器或者通知其他线程等待该对象(O)的监控器时,抛出该异常。 java.lang.IllegalStateException 违法的状态异常。...java.lang.NoSuchMethodException 方法不存在异常。当访问某个类的不存在的方法时抛出该异常。 java.lang.NullPointerException 空指针异常。...当应用试图在要求使用对象的地方使用了null时,抛出该异常。譬如:调用null对象的实例方法、访问null对象的属性、计算null对象的长度、使用throw语句抛出null等等。

    1.3K10

    Java中常见的异常类型

    这些问题通常描述一些不应被应用程序捕获的反常情况。 java.lang.ExceptionInInitializerError 初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异常时抛出。...当一个应用试图通过Java的new操作符构造一个抽象类或者接口时抛出该异常. java.lang.InternalError 内部错误。用于指示Java虚拟机发生了内部错误。...java.lang.ClassCastException 类造型异常。假设有类A和B(A不是B的父类或子类),O是A的实例,那么当强制将O构造为类B的实例时抛出该异常。...当访问某个类的不存在的方法时抛出该异常。 java.lang.NullPointerException 空指针异常。当应用试图在要求使用对象的地方使用了null时,抛出该异常。...是所有Java虚拟机正常操作期间可以被抛出的异常的父类。 java.lang.SecurityException 安全异常。由安全管理器抛出,用于指示违反安全情况的异常。

    3.4K40

    RuntimeException和Exception区别

    未检查异常是因为程序员没有进行必需要的检查,因为疏忽和错误而引起的错误。...这些问题通常描述一些不应被应用程序捕获的反常情况。 java.lang.ExceptionInInitializerError 初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异常时抛出。...当一个应用试图通过Java的new操作符构造一个抽象类或者接口时抛出该异常. java.lang.InternalError 内部错误。用于指示Java虚拟机发生了内部错误。...当访问某个类的不存在的方法时抛出该异常。 java.lang.NullPointerException 空指针异常。当应用试图在要求使用对象的地方使用了 null时,抛出该异常。...是所有 Java虚拟机正常操作期间可以被抛出的异常的父类。 java.lang.SecurityException 安全异常。由安全管理器抛出,用于指示违反安全情况的异常。

    1.4K10

    Java:面试官上来就问:遇到异常怎么办?我懵了

    Java异常的理解? 异常主要处理编译期不能捕获的错误。出现问题时能继续顺利执行下去,而不导致程序终止。确保程序的健壮性。...例如,若试图使用空值对象引用、除数为零或数组越界,则分别引发运行时异常(NullPointerException、ArithmeticException)和 ArrayIndexOutOfBoundException...当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过 NullPointerException 异常,它就是运行时异常,并且这种异常还是最常见的异常之一。...遇到的异常类有哪些 NullPointerException:空指针。操作一个 null 对象的方法或属性时会抛出这个异常。 ArrayIndexOutOfBoundsException:数组越界。...java类型转换错误异常 ExceptionInInitializerError:静态初始值或静态变量初始值期间发生异常。

    2.1K10

    【读码JDK】-java.lang包介绍

    Class 类实例对象,表示类和接口。 枚举类型是一种类,注释类型是一种接口。 每个数组也属于一个类,该类反映为类对象,由具有相同元素类型和维数的所有数组共享。...虚拟机检测到正在加载类的超类存在循环时,抛出 ClassFormatError 当Java虚拟机尝试读取类文件并格式化错误或者无法解析类文件时,抛出 ClassLoader 类加载器是一个负责加载类的对象...覆盖clone方法的应用程序也可以抛出此异常,以指示无法克隆或不应克隆对象 Comparable 实现此接口的对象的列表(和数组)可以由Collections.sort (和Arrays.sort )自动排序.../p/10448283.html InstantiationError 当应用程序尝试使用Java new构造来实例化抽象类或接口时,抛出该异常 InstantiationException 当应用程序尝试使用...NoSuchMethodException 无法找到特定方法时抛出 NullPointerException 当应用程序在以下情况尝试使用null时抛出。 这些包括: 调用null对象的实例方法。

    2.3K20

    Java 17 与 Java 11:为什么我强烈建议你升级到 Java 17?

    Records中的字段不能更改,只能通过声明记录时给出的参数来定义,如上所示(但我们可以定义静态变量)。我们还可以定义一个可以验证字段的自定义构造函数。...任何扩展密封类的类都可以是像PearSealed这样的Final 类,也可以像AppleSealed一样在声明类时使用non-sealed关键字由其他类扩展。...在下面的示例中,如果对象不是Grape类型,则会抛出运行时异常,因此编译器在到达 print 语句时将确定Grape对象应该存在。...在 Java 11 中,当我们得到 NullPointerException 时,我们只得到发生异常的行号,但没有得到解析为 null 的方法或变量。...当我们比较 Java 11 和 Java 17 中收到的错误消息时,我们会看到错误消息的差异,因为现在我们确切地知道是对映射中存在的 null 对象调用 get 方法导致了异常。

    4.6K30

    JAVA非受检异常和受检异常的区别等

    两者的区别主要在:受检的异常是由编译器强制执行的,必须捕获,用于指示不受程序控制的异常情况(例如,I/O 错误),而非受检的异常在运行时发生,用于指示编程错误(例如,空指针。...  Java.lang.StringIndexOutOfBoundsException   Java.lang.NegativeArraySizeException’   Java.lang.NullPointerException...classpath环境变量 因为NoClassDefFoundError是java.lang.LinkageError的一个子类,所以可能由于程序依赖的原生的类库不可用而导致 检查日志文件中是否有java.lang.ExceptionInInitializerError...,它是程序运行期间的异常,比如当我们尝试在运行时使用反射加载类时,ClassNotFoundException 就会出现。...CLASSPATH中缺少类引起的,通常是由于缺少 JAR 文件而引起的,但是如果 JVM 认为应用运行时找不到相应的引用,就会抛出 NoClassDefFoundError 错误;当你在代码中显示的加载类比如

    3.3K20

    一篇文章吃透:为什么加载数据库驱动要用Class.forName()

    《深入理解Java虚拟机》p214讲类的加载过程:加载、验证、准备、解析和初始化。 其中 加载:主要在内存中生成class文件对应的Class对象,作为方法区这个类各种数据的访问入口。  ...代码的主要逻辑是查找无参数构造方法,然后通过反射来调用构造实例。...当调用DriverManager.getConnection()方法时,DriverManager类将 自动设置合适的驱动程序。该特性向后兼容,因此无需对现有的JDBC代码作任何改动。...(); } println("registerDriver: " + driver); } 将自己注册到 驱动管理器的驱动列表中 然后调用驱动管理器的获取连接方法时从这里列表...Connection的对象就返回。

    1.8K31

    IDEA 异常系列-java.lang.ExceptionInInitializerError

    IDEA总是会遇到各种奇怪的问题,记录下来,便于查看。 问题一 java.lang.ExceptionInInitializerError ? 问题不能再现了,盗别人的图。...原因 网上查的资料是,静态变量初始化有问题。应该是JDK的版本引起的问题。 项目里用的是JDK10,IDEA导入项目后,默认的JDK版本是1.6或者更低。这个时候,run 主类就会报换个错。...或者看下面参考的博客,看详细的编译日志,能看到详细的异常信息。 暴力解决方案是重启IDEA。 ?...参考 java.lang.ExceptionInInitializerError的原因 升级到JDK8,编译时发生 Error:java: java.lang.ExceptionInInitializerError...: 非法字符: '\ufeff' 解决方案参看Error:(1, 1) java: 非法字符: '\ufeff'

    5.9K40

    几种常见的Runtime Exception

    每个类型的异常的特点 Error体系 : Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形。应用程序不应该抛出这种类型的对象(一般是由虚拟机抛出)。...③ 异常对象通常有两种构造函数:一种是无参数的构造函数;另一种是带一个字符串的构造函数,这个字符串将作为这个异常对象除了类型名以外的额外说明。...③ 异常对象中包含的信息 :一般情况下,异常对象唯一有用的信息就是类型信息。但使用异常带字符串的构造函数时,这个字符串还可以作为额外的信息。...当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。...java.lang.ExceptionInInitializerError 初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异常时抛出。

    1.8K20

    Java异常层次结构-Java快速入门教程

    Java API 通过提供预定义异常的数量来支持异常处理。这些预定义的异常由 java 中的类表示。 当发生预定义异常时,JVM(Java 运行时系统)会创建预定义异常类的对象。...它不是由程序员的错误引起的。如果系统无法正常工作或资源分配不正确,通常会发生这种情况。...我们将在进一步的教程中了解更多详细信息。 3.Exception  异常:它由一个异常类表示,该类表示由程序和外部因素引起的错误。异常类是 Throwable 类的子类,也是所有异常类的超类。...让我们看一下它们的简要说明。 1. ArithmeticException:当发生算术问题(例如数字除以零)时,会抛出此异常。也就是说,它是由数学错误引起的。 2....NullPointerException:NullPointerException是当我们尝试使用null而不是对象时由JVM抛出的运行时异常。也就是说,当引用为 null 时,将引发它。

    44400

    JavaSE(十一)之异常处理详解

    Java异常是一个描述在代码段中发生异常的对象,当发生异常情况时,一个代表该异常的对象被创建并且在导致该异常的方法中被抛出,而该方法可以选择自己处理异常或者传递该异常。...三、异常之间的区别与联系    3.1、Error Error类对象由 Java 虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关。     ...Java方法在运行过程中发生了异常,则创建异常对象。   将异常抛出监控区域之外,由Java运行时系统负责寻找匹配的catch子句来捕获异常。...(TestException.java:7)   使用多重的catch语句:很多情况下,由单个的代码段可能引起多个异常。...该程序阐述了怎样创建Java的标准异常对象,特别注意这一行:         throw new NullPointerException("demo");     分析:此处new用来构造一个NullPointerException

    1.5K90

    JAVA安全编码标准学习分享

    ,如果过大则抛出异常 6、使用ASCII字符集的子集作为文件名和路径名,当包括特殊字符如控制字符、空格、分隔符、命令行解释器、脚本和解析器时,会引起不可预期的行为 7、从格式字符串中排除用户输入,避免拒绝服务...8、不要向Runtime.exec()方法传递非受信、未净化的数据 9、净化传递给正则表达式的非受信数据 10、如果没有指定适当的locale,不要使用locale相关方法处理与locale相关的数据...当元素为可变对象的索引时,需要进行深复制 7、不允许敏感类复制其自身,也就是不应该实现Cloneable接口,也不应该提供复制构造方法 8、不要在嵌套类中暴露外部类的私有字段 9、不要使用公有静态的非final...十二、与线程安全相关的其他规则 1、不要使用非线程安全方法来覆写线程安全方法 2、不要让this引用在创建对象时泄漏,常见途径有: 2.1、从创建对象的构造函数中调用一个非私有的、可覆写的方法时,该方法返回...2.5、在创建对象的构造函数中将this赋给公有的静态变量,从而将其公开 2.6、从构造函数中抛出一个异常 2.7、传递内部对象状态至一个外部方法 3、不在在初始化类时使用后台线程,避免初始化循环和死锁

    5K10

    常见加载类错误分析

    无数个Java程序员都是这样问过自己。 这个异常通常发生在显式加载类的时候,例如用如下方式调用加载一个类时就报这个错了。...native标识的方法时JVM找不到对应的本机库文件时出现,代码如下 java.lang.UnsatisfiedLinkError: no Nolib in java.library.path...:12) JVM在做类型转换时会按照如下规则进行检查 对于普通对象,对象必须时目标类的实例或目标类的子类的实例。...ExceptionInInitializerError 这个错误在JVM规范中是这样定义的: 如果Java 虚拟机试图创建类ExceptionInInitializerError的新实例,但是因为出现Out-Of-Memory-Error...在初始化这个类时,给静态属性map赋值时出现了异常导致抛出错误ExceptionInInitializerError

    1.5K20

    【Java】已解决:`java.lang.ExceptionInInitializerError`

    在Java开发中,java.lang.ExceptionInInitializerError是一个常见的错误类型,通常发生在类的静态初始化过程中。...一、分析问题背景 ExceptionInInitializerError是Java虚拟机在类的初始化期间遇到异常时抛出的错误。这通常发生在以下场景: 静态块中包含可能抛出异常的代码。...二、可能出错的原因 导致java.lang.ExceptionInInitializerError的原因包括但不限于以下几种: 静态块中的异常:静态块在类加载时执行,如果其中的代码抛出未处理的异常,将导致初始化失败...五、注意事项 在编写涉及静态初始化的代码时,注意以下几点可以有效避免java.lang.ExceptionInInitializerError: 避免复杂的静态初始化:尽量将复杂的逻辑移出静态块或静态变量初始化...,放入构造函数或普通方法中。

    3.6K10
    领券