/*
* 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 异常处理的更多相关文章

  1. springMVC全局Exception异常处理SimpleMappingExceptionResolver

    继承了SimpleMappingExceptionResolver 贴上代码 /** * 对controller异常进行全局处理 * 区分了对普通请求和ajax请求的异常处理,普通请求返回到配置的er ...

  2. java基础系列--Exception异常处理

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7191280.html 1.概述 Java代码中的异常处理是非常重要的一环,从代码中可以看到 ...

  3. Exception异常处理机制

    为什么要自定义自己的Exception ,Java Exception机制与传统的C语言的异常处理机制有什么不同,这种Exception机制的意义在什么地方?接下来咱就来和你一起探讨Exception ...

  4. Java基础(七)--Exception异常处理

    发现错误的理想时机是程序运行之前(编译期),然后不太现实,很多异常无法被发现(特别是业务上的数据),需要在运行时解决. 错误恢复机制保证代码健壮性的方式,异常处理在程序中很常见,也是必须的,必须考虑有 ...

  5. Exception,异常处理操作try{}catch(XXXException e){}finally{}

    package seday07.exception;/** * @author xingsir * try-catch 异常处理机制 * 语法: * try{ * 代码片段 * }catch(XXXE ...

  6. Java Exception 异常处理

    一.定义 异常(Exception) : 是指程序运行时出现的非正常情况,是特殊的运行错误对象,对应着Java语言特定的运行错误处理机制. 二.两大常见的异常类型 • RuntimeException ...

  7. SpringBoot exception异常处理机制源码解析

    一.Spring Boot默认的异常处理机制 1:浏览器默认返回效果 2:原理解析 为了便于源码跟踪解析,在·Controller中手动设置异常. @RequestMapping(value=&quo ...

  8. Communications link failure due to underlying exception异常处理(转)

    最近的一个项目在Hibernate使用C3P0的连接池,数据库为Mysql.开发测试没有问题,在运行中每个一段长的空闲时间就出现异常: java 代码 org.hibernate.exception. ...

  9. Exception异常处理

    1.java异常类: 都是Throwable的子类: 1.Exception(异常) :是程序本身可以处理的异常. 2.Error(错误): 是程序无法处理的错误.这些错误表示故障发生于虚拟机自身.或 ...

随机推荐

  1. (转)GNU风格ARM汇编语法指南(非常详细)3

    原文地址:http://zqwt.012.blog.163.com/blog/static/120446842010111482023804/ 3.GNU汇编程序中的分段 <1>    . ...

  2. C++:利用全局钩子实现键盘锁

    在家看网课,记笔记不方便.于是就想弄个键盘锁,方便学习(在寝室也好把外接键盘放上去打游戏). 其实这东西挺简单的,就三行代码. HHOOK hk; LRESULT CALLBACK kbproc(in ...

  3. 杂谈 | 增量思维v.s.存量思维

      无挂碍故,无有恐怖,远离颠倒梦想,究竟涅槃. ——<心经>   声明在前,本文并不是要论述“存量思维”是不好的, 而是整理某些场景下需要摒弃“存量思维”,或者提倡“增量思维”.   1 ...

  4. hibernate连接oracle

    <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC           & ...

  5. 洛谷2212Watering the Fields S 最小生成树

    题目链接:https://www.luogu.com.cn/problem/P2212 几乎是Kruskal裸题,但是建n*(n-1)条边给我T了俩点,后来我发现只要C(n,2)条边就可以,因为假设( ...

  6. js正则校验表单

    /** * 表单校验规则 * 不符合规则时,返回错误文案 * 符合规则时,返回false */ var rules = {} // 是否必填 rules.required = function (va ...

  7. 插入排序与Shell排序

    ElementType ShellSort( ElementType A[], int N ) { ;h>;h/=){ for(int i=h;i<N;i++){ ElementType ...

  8. WeChat 搭建过程

    [被动回复消息] 1.创建项目(基于MyEclipse + Tomcat 7 编写):wechat 2.导入jar包(用于解析xml):dom4j-1.6.1.jar,xstream-1.3.jar ...

  9. 简述UDF/UDAF/UDTF是什么,各自解决问题及应用场景

    UDF User-Defined-Function 自定义函数 .一进一出: 背景 系统内置函数无法解决实际的业务问题,需要开发者自己编写函数实现自身的业务实现诉求. 应用场景非常多,面临的业务不同导 ...

  10. Python数据处理(持续更新)

    #打开txt文件 #打开txt文件 with open('day02.txt') as f: for line in f.readlines(): aline=line.strip() bline=a ...