31 Exception 异常处理
/*
* Exception in thread "main" java.lang.ArithmeticException: / by zero
at com.itheima_01.ExceptionDemo.main(ExceptionDemo.java:5)
我们在写代码的时候,经常的出现一些小问题,那么为了方便我们处理这些问题,java为我们提供了异常机制
异常包含了错误的类型、原因以及位置
异常:不正常,我们在代码的时候出现的编译或者运行时的错误
异常的体系结构:
Throwable(最顶层)
Error:出现的不能够处理的严重问题
Exception:可以处理的问题
电脑坏了:
系统中毒:重装系统就可以了
主板坏了:买一台新的
*
*/
/*
* 异常的处理方式:
* 1.捕获处理
* try...catch语句
*
* try {
* 有可能出现问题的代码;
* } catch(ArithmeticException ae) {
* 处理异常;
* }
* 2.抛出去
* 当我们不想处理异常,或者没有能力处理的时候,我们可以选择抛出异常,谁调用方法谁处理异常
* 使用关键字throws在方法的声明出抛出异常
*
*try...catch的执行顺序:
* 首先执行try语句
* 如果发现异常,异常下面的代码不在执行,直接跳入catch语句中,catch语句结束后,整个try...catch结束
* 如果没有发现异常,try语句执行结束后,try...catch直接结束, 不在执行catch语句
*
* jvm处理异常的方式:
* 如果出现异常我们没有处理,jvm会帮我们进行处理,他会把异常的类型,原因还有位置显示在命令行
* 并且还终止了程序,异常后面的代码将不在执行
*/
* 如何处理多个异常:
* 可以使用多个try...catch语句
* 使用一个try和多个catch
*
* 多个catch之间的顺序:
* 多个catch之间可以有子父类
* 平级之间没有顺序关系
* 如果有子父类,父类异常必须放在后面(类似于if..else if..else.)
*
* finally:组合try...catch使用,用于释放资源等收尾工作,无论try...catch语句如何执行,finally的代码一定会执行
*
* FileWrite 写数据需要close才能写入文件,出现异常后就会退出,这时如果在finally里写入close方法那么异常前的数据可以正常写入
*
* try {
* 有可能出现问题的代码;
*
* } catch(异常对象) {
* 处理异常;
* } finally {
* 释放资源;
* 清理垃圾;
* }
*
public class Exception处理方式 {
public static void main(String[] args) /*throws Exception*/ {
try {
String s = null;
System.out.println(1);
System.out.println(s.startsWith("aa"));
System.out.println(2);//当前面try捕获到异常,后面输出2就不会执行
} catch (Exception e) {
System.out.println("空指针");
System.out.println(3);
}
/*function();*/
}
/*public static void function() throws Exception {
FileWriter fw = new FileWriter("b.txt");
}*/
}
输出

package day31_exception; import java.lang.Exception; /*
* 如何处理多个异常:
* 可以使用多个try...catch语句
* 使用一个try和多个catch
*
* 多个catch之间的顺序:
* 多个catch之间可以有子父类
* 平级之间没有顺序关系
* 如果有子父类,父类异常必须放在后面(类似于if..else if..else.)
*
*
*/
public class Exception多个catch时执行顺序 {
public static void main(String[] args) {
try{
String s = null;
// System.out.println(s.length()); //int[] arr = new int[5];
//System.out.println(arr[8]); System.out.println(2 / 0);
}/*catch (Exception e) {
System.out.println("出现异常了");
}*/catch (ArrayIndexOutOfBoundsException e){
System.out.println("出现数组越界了");
}catch (NullPointerException e) {
System.out.println("出现空指针了");
}catch (Exception e) {
System.out.println("出现异常了");
}
}
}
输出

31 Exception 异常处理的更多相关文章
- springMVC全局Exception异常处理SimpleMappingExceptionResolver
继承了SimpleMappingExceptionResolver 贴上代码 /** * 对controller异常进行全局处理 * 区分了对普通请求和ajax请求的异常处理,普通请求返回到配置的er ...
- java基础系列--Exception异常处理
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7191280.html 1.概述 Java代码中的异常处理是非常重要的一环,从代码中可以看到 ...
- Exception异常处理机制
为什么要自定义自己的Exception ,Java Exception机制与传统的C语言的异常处理机制有什么不同,这种Exception机制的意义在什么地方?接下来咱就来和你一起探讨Exception ...
- Java基础(七)--Exception异常处理
发现错误的理想时机是程序运行之前(编译期),然后不太现实,很多异常无法被发现(特别是业务上的数据),需要在运行时解决. 错误恢复机制保证代码健壮性的方式,异常处理在程序中很常见,也是必须的,必须考虑有 ...
- Exception,异常处理操作try{}catch(XXXException e){}finally{}
package seday07.exception;/** * @author xingsir * try-catch 异常处理机制 * 语法: * try{ * 代码片段 * }catch(XXXE ...
- Java Exception 异常处理
一.定义 异常(Exception) : 是指程序运行时出现的非正常情况,是特殊的运行错误对象,对应着Java语言特定的运行错误处理机制. 二.两大常见的异常类型 • RuntimeException ...
- SpringBoot exception异常处理机制源码解析
一.Spring Boot默认的异常处理机制 1:浏览器默认返回效果 2:原理解析 为了便于源码跟踪解析,在·Controller中手动设置异常. @RequestMapping(value=&quo ...
- Communications link failure due to underlying exception异常处理(转)
最近的一个项目在Hibernate使用C3P0的连接池,数据库为Mysql.开发测试没有问题,在运行中每个一段长的空闲时间就出现异常: java 代码 org.hibernate.exception. ...
- Exception异常处理
1.java异常类: 都是Throwable的子类: 1.Exception(异常) :是程序本身可以处理的异常. 2.Error(错误): 是程序无法处理的错误.这些错误表示故障发生于虚拟机自身.或 ...
随机推荐
- Python生态_turtle库
Python生态_turtle库: 绘制状态函数: pendown():别名pd(),落下画笔,之后,移动画笔将绘制形状 penup():抬起画笔 pensize():画笔粗细大小 颜色控制函数: p ...
- 有关KMP算法
KMP算法: 此算法的本质是首先对于模板字符串进行计算,生成一个数组(next数组),该数组反映了模板字符串的情况. 例: S: ABADACABABCD P: ABAB 当我们查询到P3与S3(B和 ...
- nuxt创建项目的步骤
nuxt创建项目的步骤 1.基本步骤 // 创建package.json依赖管理文件 npm init -y // 在package.json文件中添加运行nuxt的命令,之后npm run dev启 ...
- JS三个事件绑定方法
1. JS三个事件绑定方法 1.1. 使用html进行事件绑定 1.直接在html标签上写入事件类型和事件处理方法. <button onclick = "alert('hello w ...
- Javascript之盒子拖拽(跟随鼠标、边界限定、轨迹回放)
本文通过拖拽案例,实现"跟随鼠标.边界限定.轨迹回放"三大效果: 完整代码中有详尽注释,故不再进行细致讲解: 对于案例中需要注意的重点或易错点问题,会总结在最后. 效果图(仅演示左 ...
- Java进阶之心态
不管什么时候学习都是一个积累的过程,量变才能引起质变.一口吃一个胖子是不存在的,成长的路上没有捷径,只有学到的知识才是我们走向远方道路的基石!
- Spark使用jdbc时的并行度
Spark SQL支持数据源使用JDBC从其他数据库读取数据. 与使用JdbcRDD相比,应优先使用此功能. 这是因为结果以DataFrame的形式返回,并且可以轻松地在Spark SQL中进行处理或 ...
- POJ 3070 Fibonacci矩阵快速幂 --斐波那契
题意: 求出斐波那契数列的第n项的后四位数字 思路:f[n]=f[n-1]+f[n-2]递推可得二阶行列式,求第n项则是这个矩阵的n次幂,所以有矩阵快速幂模板,二阶行列式相乘, sum[ i ] [ ...
- 左手C#,右手Java
C# takes me to develop career, Java makes me more powerful. Code is poetry.
- Spring中常用注解的介绍
spring中使用注解时配置文件的写法: <?xml version="1.0" encoding="UTF-8"?> <span style ...