异常(Exception)指的是所有可能造成计算机无法正常处理的情况。发生异常时,将阻止程序的运行,若不妥善处理异常,可能造成计算机死机。经过异常处理,可以保证程序的正常运行,我们把针对不同的异常做妥善的处理的方式叫做“异常处理机制”。

异常处理的目的:加强程序的健壮性、

Java 中,所有的异常都被封装到相应的类中,同时,用户也可以自定义异常类和自定义抛出异常。

抛出异常(throw):是指将异常提交给运行时系统的过程。

捕获异常(

异常类 Throwable

异常类是指由程序抛出的异常对象所属的类。

异常可以分为两大类:

类和 java.lang.Error

类。这两个类均继承自 java.lang.Throwable

Error 类通常指的是

Exception 类通常指的是可以处理的异常,分为对于编译时异常,不解决编译就不会通过

对于运行时异常,可以选择性地来进行处理,如果不处理则出现异常时将交给 JVM 默认处理

获取异常信息的方法

Java 中常见的异常类

异常

描述

NullPointerException

空指向异常(空指针异常)。指的是使用了一个未初始化的对象(未开辟内存

ArithmeticException

算术异常。如:除以零

ArrayIndexOutOfBoundsException

数组下标越界异常。数组的

FileNotFoundException

文件未找到异常

OutOfMemoryExceptin

内存溢出异常(内存不足异常)。可用内存不足以分配给一个对象时抛出

NoSuchElementExceptin

调用了类集中不存在的元素

ClassCastExceptin

对象与类集中的元素不兼容

UnsupportedOperationExceptin

修改一个不允许修改的对象

异常处理 try-catch-

死了都要 try,不 try 到 catch 不痛快

当发生异常时,通常有两种处理方法:

try-catch-finally

异常处理的语法:

try {

// 要检查的语句

} catch (异常类 e) {

// 异常发生时的处理语句

e.printStackTrace(); // 打印异常信息

} finally {

// 一定会运行到的语句

}

try 语句块不可以独立存在,必须与 catch 或 finally 同存,finally 语句块可以省略

catch 区块可以有多个,此时异常类型必须子类在前,父类在后

当 try 区块捕获到异常时,不执行接下来的语句,立即进入 catch 区块

finally 语句块不会被执行的情况

在 finally 语句块中发生了异常

在前面的

程序所在的线程死亡

CPU 关闭

异常处理的几种形式

try…catch

try…catch…finally

try…finally

向上抛出异常 throws

方法头中使用 throws

关键字可以表明这个方法可能存在的异常类型,此方法不处理异常,而是将该异常提交给调用这个方法的方法。

public class Test {

public static vo

自行抛出异常 throw

throws

用于方法声明中,声明一个方法会抛出哪些异常,而 throw

是方法体中实际执行抛出异常的动作。

throw 异常类型的

try {

throw new ArrayIndexOutOfBoundsException("我是异常信息");

} catch (Exception e) {

e.printStackTrace();

}

自定义异常类

当系统提供的异常类不足以满足业务

class 自定义异常类 extends 异常类型 {

}

public class Test {

public static void main(String[] args) {

try {

throw new MyException("我是自定义异常类");

} catch (Exception e) {

e.printStackTrace();

}

}

}

class MyException extends Exception {

private String msg;

public MyException(String msg) {

this.msg = msg;

}

@Override

public String toString() {

return "MyException [msg=" + msg + "]";

}

}

java的异常处理块的形式_Java 异常处理详细解读相关推荐

  1. java异常处理代码详解_Java异常处理机制总结

    概念介绍 异常是发生在程序执行过程中阻碍程序正常执行的错误事件,当一个程序出现错误时,可能的情况有如下3种: 语法错误 代码的格式错了,某个字母输错了 运行时错误 空指针异常,数组越界,除数为零等 逻 ...

  2. java 异常的分类并举例_Java异常处理中的一些特殊情况举例

    只使用try和finally不使用catch的原因和场景JDK并发工具包中,很多异常处理都使用了如下的结构,如AbstractExecutorService,即只有try和finally没有catch ...

  3. java中检查性异常类_Java异常处理、java语言推崇使用检查类型异常

    异常处理是java语言的重要特性之一,<Three Rules for effective Exception Handling>一文中是这么解释的:它主要帮助我们在debug的过程中解决 ...

  4. java中在方法体内抛出异常_Java异常处理中___用于方法体内,抛出一个异常对象。...

    Java异常处理中___用于方法体内,抛出一个异常对象. 答: throw; 智慧职教: 运输高致病性动物病原微生物菌(毒)种或者样本的,与内包装要求错误的是 答:E.主容器表面标注"高致病 ...

  5. java静态代码块的作用域_java基础之面向对象

    0. 面向对象与面向过程的区别 面向对象 如:指挥者,人,笔记本等都可以是对象,"万物皆对象" 面向过程 如:执行者 1. 面向对象的三个特征:封装,继承,多态. 以后的开发就是: ...

  6. java静态代码块和构造方法_Java静态代码块和构造方法执行顺序

    package com.uno.staticBlock; import java.lang.reflect.Field; import java.util.Vector; /** * 验证静态代码块和 ...

  7. java 静态代码块的作用_Java中什么是静态代码块,有什么作用?

    在java中使用static关键字声明的代码块.静态块用于初始化类,为类的属性初始化.每个静态代码块只会执行一次.静态代码块随着类加载而加载,有多个静态代码块的,按代码块前后顺序加载. 由于JVM在加 ...

  8. java静态初始化块的作用_Java 中的 static 使用之静态初始化块

    方法不在main函数里面不会被执行吗? public class HelloWorld { String name; // 声明变量name String sex; // 声明变量sex static ...

  9. java多态的两种形式_java核心(八):继承与方法重写、final、多态性的两种描述形式...

    一.继承的作用 子类继承父类的属性和方法,实现代码的复用: 子类扩充自己的标准,实现精细化的类型定义. 二.子类构造方法的限制 子类在实例化的时候,默认先实例化父类对象,然后再实例化本类对象: 子类构 ...

最新文章

  1. JavaWeb监听器
  2. python饼状图顺时针_Python matplotlib顺时针饼图
  3. Go 语言标准库中 atomic.Value
  4. java todo error_Java全局异常处理(TODO)
  5. android 获取sd卡视频文件名,android – 如何获取SD卡上的视频列表
  6. 不规则图形数格子的方法_北师大版五年级数学上册数学6.1组合图形的面积微课堂、同步练习、图文解读...
  7. 风控上模型中的大小卡、主路旁路的应用
  8. [HDU2294]Pendant
  9. unity天气系统_天气系统(一)
  10. mysql判断后执行查询语句吗_如何看mysql执行的sql语句
  11. Keli 编译遇到 *** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED且已经破解
  12. ISIS 7 Professional运行报错解决方案
  13. 信息安全技术 网络安全漏洞分类分级指南(GB/T 30279-2020 )
  14. 计算机图形学【GAMES-101】7、光线追踪原理(线面求交、预处理光追加速)
  15. Linux动态频率调节系统CPUFreq之三:governor
  16. 使用腾讯 CDN,结果网站现在出现您的连接不是私密连接”“,”隐私设置错误”如何解决?
  17. 猿辅导、掌门教育悄然转身,发力素质教育
  18. 好心情:跌落凡间的星星天使,爱终将弥补一切
  19. 行为层JavaScript+jQuery
  20. 微信群机器人方案选型

热门文章

  1. Redis如何做内存优化?
  2. 单例设计模式 序列化破坏单例模式原理解析及解决方案?
  3. golang new和make却别
  4. java回显怎么实现_Java实现简单的server/client回显功能
  5. Qt中的QString和QByteArray之间转换
  6. Go 把类型放在变量名后面,是特立独行还是另有机密?
  7. ConfigMap用管理对象的方式管理配置
  8. github上传命令
  9. JVM整体架构与调优参数说明
  10. 深入理解分布式系统原理与设计