Java常见异常总结


  • 算术异常类:ArithmeticExecption

  • 空指针异常类:NullPointerException

  • 类型强制转换异常:ClassCastException

  • 数组负下标异常:NegativeArrayException

  • 数组下标越界异常:ArrayIndexOutOfBoundsException

  • 违背安全原则异常:SecturityException

  • 文件已结束异常:EOFException

  • 文件未找到异常:FileNotFoundException

  • 字符串转换为数字异常:NumberFormatException

  • 操作数据库异常:SQLException

  • 输入输出异常:IOException

  • 方法未找到异常:NoSuchMethodException

  • 抽象方法错误。当应用试图调用抽象方法时抛出 :java.lang.AbstractMethodError

  • 断言错, 用来指示一个断言失败的情况:java.lang.AssertionError

  • 类循环依赖错误。在初始化一个类时,若检测到类之间循环依赖则抛出该异常:java.lang.ClassCircularityError

  • 类格式错误。当Java虚拟机试图从一个文件中读取Java类,检测到该文件的内容不符合类的有效格式时抛出:java.lang.ClassFormatError

  • 错误。是所有错误的基类,用于标识严重的程序运行问题。这些问题通常描述一些不应被应用程序捕获的反常情况:java.lang.Error

  • 初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异常时抛出。静态初始化程序是指直接包含于类中的static语句段:java.lang.ExceptionInInitializerError

  • 违法访问错误。当一个应用试图访问、修改某个类的域(Field)或者调用其方法,但是又违反域或方法的可见性声明,则抛出该异常:java.lang.IllegalAccessError

  • 不兼容的类变化错误。当正在执行的方法所依赖的类定义发生了不兼容的改变时,抛出该异常。一般在修改了应用中的某些类的声明定义而没有对整个应用重新编译而直接运行的情况下,容易引发该错误:java.lang.IncompatibleClassChangeError

  • 实例化错误。当一个应用试图通过Java的new操作符构造一个抽象类或者接口时抛出该异常:java.lang.InstantiationError

  • 内部错误。用于指示Java虚拟机发生了内部错误:java.lang.InternalError

  • 链接错误。该错误及其所有子类指示某个类依赖于另外一些类,在该类编译之后,被依赖的类改变了其类定义而没有重新编译所有的类,进而引发错误的情况:java.lang.LinkageError

  • 未找到类定义错误。当Java虚拟机或者类装载器试图实例化某个类,而找不到该类的定义时抛出该错误:java.lang.NoClassDefFoundError

  • 域不存在错误。当应用试图访问或者修改某类的某个域,而该类的定义中没有该域的定义时抛出该错误:java.lang.NoSuchFieldError

  • 方法不存在错误。当应用试图调用某类的某个方法,而该类的定义中没有该方法的定义时抛出该错误:java.lang.NoSuchMethodError

  • 内存不足错误。当可用内存不足以让Java虚拟机分配给一个对象时抛出该错误:java.lang.OutOfMemoryError

  • 堆栈溢出错误。当一个应用递归调用的层次太深而导致堆栈溢出时抛出该错误:java.lang.StackOverflowError

  • 线程结束。当调用Thread类的stop方法时抛出该错误,用于指示线程结束:java.lang.ThreadDeath

  • 未知错误。用于指示Java虚拟机发生了未知严重错误的情况:java.lang.UnknownError

  • 未满足的链接错误。当Java虚拟机未找到某个类的声明为native方法的本机语言定义时抛出:java.lang.UnsatisfiedLinkError

  • 不支持的类版本错误。当Java虚拟机试图从读取某个类文件,但是发现该文件的主、次版本号不被当前Java虚拟机支持的时候,抛出该错误:java.lang.UnsupportedClassVersionError

  • 验证错误。当验证器检测到某个类文件中存在内部不兼容或者安全问题时抛出该错误:java.lang.VerifyError

  • 虚拟机错误。用于指示虚拟机被破坏或者继续执行操作所需的资源不足的情况:java.lang.VirtualMachineError

  • 算术条件异常。譬如:整数除零等:java.lang.ArithmeticException

  • 数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出:java.lang.ArrayIndexOutOfBoundsException

  • 数组存储异常。当向数组中存放非数组声明类型对象时抛出:java.lang.ArrayStoreException

  • 类造型异常。假设有类A和B(A不是B的父类或子类),O是A的实例,那么当强制将O构造为类B的实例时抛出该异常。该异常经常被称为强制类型转换异常 :java.lang.ClassCastException

  • 找不到类异常。当应用试图根据字符串形式的类名构造类,而在遍历CLASSPAH之后找不到对应名称的class文件时,抛出该异常:java.lang.ClassNotFoundException

  • 不支持克隆异常。当没有实现Cloneable接口或者不支持克隆方法时,调用其clone()方法则抛出该异常:java.lang.CloneNotSupportedException

  • 枚举常量不存在异常。当应用试图通过名称和枚举类型访问一个枚举对象,但该枚举对象并不包含常量时,抛出该异常:java.lang.EnumConstantNotPresentException

  • 根异常。用以描述应用程序希望捕获的情况:java.lang.Exception

  • 违法的访问异常。当应用试图通过反射方式创建某个类的实例、访问该类属性、调用该类方法,而当时又无法访问类的、属性的、方法的或构造方法的定义时抛出该异常:java.lang.IllegalAccessException

  • 违法的监控状态异常。当某个线程试图等待一个自己并不拥有的对象(O)的监控器或者通知其他线程等待该对象(O)的监控器时,抛出该异常:java.lang.IllegalMonitorStateException

  • 违法的状态异常。当在Java环境和应用尚未处于某个方法的合法调用状态,而调用了该方法时,抛出该异常:java.lang.IllegalStateException

  • 违法的线程状态异常。当县城尚未处于某个方法的合法调用状态,而调用了该方法时,抛出异常:java.lang.IllegalThreadStateException

  • 索引越界异常。当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常:java.lang.IndexOutOfBoundsException

  • 实例化异常。当试图通过newInstance()方法创建某个类的实例,而该类是一个抽象类或接口时,抛出该异常:java.lang.InstantiationException

  • 被中止异常。当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Thread的interrupt方法终止该线程时抛出该异常:java.lang.InterruptedException

  • 数组大小为负值异常。当使用负数大小值创建数组时抛出该异常:java.lang.NegativeArraySizeException

  • 属性不存在异常。当访问某个类的不存在的属性时抛出该异常:java.lang.NoSuchFieldException

  • 方法不存在异常。当访问某个类的不存在的方法时抛出该异常:java.lang.NoSuchMethodException

  • 空指针异常。当应用试图在要求使用对象的地方使用了null时,抛出该异常。譬如:调用null对象的实例方法、访问null对象的属性、计算null对象的长度、使用throw语句抛出null等等:java.lang.NullPointerException

  • 数字格式异常。当试图将一个String转换为指定的数字类型,而该字符串确不满足数字类型要求的格式时,抛出该异常:java.lang.NumberFormatException

  • 运行时异常。是所有Java虚拟机正常操作期间可以被抛出的异常的父类:java.lang.RuntimeException

  • 安全异常。由安全管理器抛出,用于指示违反安全情况的异常:java.lang.SecurityException

  • 字符串索引越界异常。当使用索引值访问某个字符串中的字符,而该索引值小于0或大于等于序列大小时,抛出该异常:java.lang.StringIndexOutOfBoundsException

  • 类型不存在异常:java.lang.TypeNotPresentException


Java中的异常还有很多,下面就不再一一列举了,其实只要看懂了异常意思,基本上就能找到出错的原因和位置了,那么找到解答的方法也就会快一些
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,802评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,109评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,683评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,458评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,452评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,505评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,901评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,550评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,763评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,556评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,629评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,330评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,898评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,897评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,140评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,807评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,339评论 2 342

推荐阅读更多精彩内容