处理异常自己处理

try-catch抛出让别人处理

throws

获得异常信息

直接打印异常对象

通过异常对象调用getMessage()方法获得

通过异常对象调用printStackTrace()方法打印异常信息

finally语句块

是一定会执行的语句块

一般用来释放锁,关闭流资源

当虚拟机关闭时不会被执行

finally中建议不要写return语句

主动抛出异常

某些特定情况需要我们主动抛出异常

利用throw来抛出

自定义异常情况

自定义的类需要继承

参考java自带的异常类再自定异常(参考API)

throws和throw的区别

throws:抛出异常,处理异常

throw:产生异常,创造异常

常见异常

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

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

java.lang.OutOfMemoryError:内存不足错误。当可用内存不足以让Java虚拟机分配给一个对象时抛出该错误。 java.lang.StackOverflowError:堆栈溢出错误。当一个应用递归调用的层次太深而导致堆栈溢出或者陷入死循环时抛出该错误。

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

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

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

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

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

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

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

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

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

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

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

其他异常

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

java 异常信息_优雅的异常处理 -- Java中的异常相关推荐

  1. java redis管理_优雅时间管理Java轻松做到,想学么?

    原标题:优雅时间管理Java轻松做到,想学么? 来源 |http://rrd.me/gCQHp 前言:需求是这样的,在与第三方对接过程中,对方提供了token进行时效性验证,过一段时间token就会失 ...

  2. python中的异常分类_列举 5 个 Python 中的异常类型以及其含义【面试题详解】

    今天爱分享给大家带来列举 5 个 Python 中的异常类型以及其含义[面试题详解],希望能够帮助到大家. BaseException +-- SystemExit +-- KeyboardInter ...

  3. java 并发修改_理解和解决Java并发修改异常ConcurrentModificationException

    your name.jpg 关键字: Java Exception 不知读者在Java开发的过程中有没有遇到类似的异常信息 Exception in thread "main" j ...

  4. java i o流异常问题_第四章 Java的I/O流和异常处理

    Java.io包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标.  Java.io包中的流支持很多种格式,比如:基本类型.对象.本地化字符集等等.  一个流可以理解为一个数据 ...

  5. classcastexception异常_优雅的异常处理

    代码正常运行不会出问题,但是遇到意外,参数变量,不符合要求,发生意外,代码终止运行 代码中的异常处理好了,代码就可以顺利的继续运行! 3.3 最近我们遇到过的异常 System.out.println ...

  6. java 堆栈信息_每天学习一个命令:jstack 打印 Java 进程堆栈信息

    Jstack 用于打印出给定的 java 进程 ID 或 core file 或远程调试服务的 Java 堆栈信息. 这里需要注意的是 Java 8 引入了 Java Mission Control, ...

  7. java 配置信息_[Java教程]java 配置信息类 Properties 的简单使用

    [Java教程]java 配置信息类 Properties 的简单使用 0 2016-12-08 09:00:09 Properties :(配置信息类) 是一个表示持久性的集合 ,继承 Hashta ...

  8. java.线程池 线程数_如何在线程“ main”中修复异常java.lang.NoClassDefFoundError:Java中的org / slf4j / LoggerFactory...

    java.线程池 线程数 此错误表示您的代码或您在应用程序中使用的任何外部库都在使用SLF4J库 (一个开放源代码日志记录库),但无法找到所需的JAR文件,例如slf4j-api-1.7.2.jar因 ...

  9. java peek函数_基础篇:JAVA.Stream函数,优雅的数据流操作

    写在开头:本文是转载于掘金上的一篇文章,已获得原作者授权,我会在文章最后放上原作者和原文链接. 前言 平时操作集合数据,我们一般都是for或者iterator去遍历,不是很好看.java提供了Stre ...

最新文章

  1. 编程实现路由算法 实验报告_lt;中国通信专刊gt; EARS:用于软件定义网络中自动路由的智能驱动体验网络架构...
  2. 小时候都想当科学家后来只有他做到了——对话阿里云MVP朱祺
  3. 图论算法在机试实现中的一些技巧和陷阱
  4. start mysql server_mysql5我的难点,快捷操作(mysql.server stop start),开机启动
  5. 又被野外利用了!新曝光Office产品多个远程命令执行漏洞分析
  6. python电话通知_教你如何用Python向手机发送通知
  7. 改变了的Windows MediaPlayer9.0SDK控制集
  8. VMware卸载干净彻底 VMware Workstation 静态IP配置(vm常见问题)
  9. css3中-moz、-ms、-webkit各什么意思
  10. Linux服务器开发,手把手设计实现epoll
  11. Java项目:SSM实现的一个在线文具学习用品购买商城网站
  12. 全球多地爆发!传染性极强!鄂尔多斯人近期外出一定要注意…
  13. C语言循环之空心梯形,循环-空心梯形
  14. 金庸的小说人生(1)
  15. 1148: 考试晋级(java版)
  16. 高校校园跑腿系统的设计app-计算机毕业设计
  17. RF之处理鼠标悬停和alert弹窗事件
  18. 跨AZ部署最佳实践之Elasticsearch
  19. 三款比较有名的终端浏览器(w3m , links2 ,lynx)
  20. 新能源汽车6kw充电机,DC to DC双向升降压48~54VDC输入,输出320VDC,双向可以输入

热门文章

  1. php不判断比较大小,php怎么不分大小比较字符串
  2. HTML5语言格式,HTML5 自然语言格式的输入表单
  3. linux 下orapwd 未找到命令,关于orapwd命令entries参数的探究
  4. 真香!微软将为Edge浏览器带来超好用的全新侧边搜索功能:无需跳转网页
  5. git图文工具_全网最详细的Windows里Git client客户端管理工具SourceTree的下载与安装(图文详解)...
  6. python遍历目录_Python遍历目录的4种方法
  7. python中while语句的用法_python 使用while循环输出*组成的菱形实例
  8. 机器学习-转换器与估计器05
  9. Matlab第二章选择题填空题,matlab及其在大学物理中的应用第二章习题答案.doc
  10. ubuntu16.04安装Virtualbox