首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java异常小结

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

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

    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.4K30

    常见的几种RuntimeException

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

    93310

    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 安全异常。由安全管理器抛出,用于指示违反安全情况的异常。

    2.3K40

    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等等。

    87810

    RuntimeException和Exception区别

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

    1.1K10

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

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

    1.9K10

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

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

    1.6K20

    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 方法导致了异常。

    3.4K30

    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 错误;当你在代码中显示的加载类比如

    2.6K20

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

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

    1.4K31

    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.6K40

    几种常见的Runtime Exception

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

    1.2K20

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

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

    1.3K90

    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、不在在初始化类时使用后台线程,避免初始化循环和死锁

    4.7K10

    Java API:String class 原

    上面由API提供的描述,可以看出,String是一个最终类,继承了Object类,实现了序列化接口和排序接口以及char可读序列接口。可以得出以下几个特点。...- 4.注意不同的方式创建的对象的个数。有几个对象,就看内存中有几个存储的是地址。 二、属性字段 以下为String类中提供的属性字段。...//默认构造,可以看出,确实是基于char数组进行存储的。...由源码得出String的compareToIgnoreCase的步骤如下: 1.先获取两个字符串的长度。 2.取长度小的两个字符串的长度进行比较。如果两个字符相等,则进入下个字符的比较。...// 如果locale为null 直接抛出异常 if (locale == null) { throw new NullPointerException();

    1.2K20
    领券