Evernote Export

异常处理

 
  1. 异常处理的套路模板:
try//创建异常处理{
 
throw new();//抛出异常
//一旦有异常, 抛出异常后,后面的语句不再执行
语句;{
……
}
}
 
catch(抓捕什么类型的异常){
语句:{
……
}
}
 
  1. 异常处理的特点:
  • 异常处理是把将检测错误从处理错误中分离出来。
 
  1. 异常类型分类:
  • 系统错误:error
  • 异常:Exception
  • 运行时异常:RuntimeException(一些例子)
    • ArithmeticException(可能引起的异常的原因:一个整数除以0)
    • NullPointerException(可能引起的异常的原因:企图通过一个null引用变量访问一个对象)
    • IndexOutOfBoundException(数组的下标超出范围)
    • IllegalArgumentException(可能引起的异常的原因:传递给方法的参数非法或不合适)
 
  1. 异常处理的操作
  • 问:如何在方法中声明异常?
使用:
public void get() throws Exception类型
  • 问:如何抛出异常
定义:检测一个错误的程序可以创建一个正确异常类型的对象并抛出它,这称为抛出一个异常
使用:
throw new 异常类("……");
注意:
  • 声明异常的关键字:throws
  • 抛出异常的关键字:throw
 
  • 问:如何捕获异常
使用:
catch(引用异常类型 变量名)//捕获异常{
语句;
 
}
 
  1. 从异常中获取信息
例如:下面可以利用java.lang.Throwable类中的实例方法获取有关异常的信息
  • getMessage();String
  • toString ();String
  • printStackTrace(); void
 
  1. finally子句
作用:不论异常是否出现或者是被捕获,都希望执行某些代码。这时候就用finally子句
使用:
try{
 
}
 
catch(theException ex){
 
 
}
 
finally{
 
 
}
 
  1. 何时使用异常:
场景:一般来说,一个项目中多个类都会发生的共同异常应该考虑作为一种异常类。对于发生在个别方法中的简单错误最好进行局部处理,无需抛出异常。
 
  1. 重新抛出异常
场景:如果异常处理没有处理某异常,或者处理器只是希望它的调用者注意到该异常,就允许java异常处理器重新抛出该异常
使用:
try{
 
 
}
 
catch(Exception ex){
 
throw ex;
}
 
 
 
  1. 链式异常
package demo1;
public class Demo4 {
//链式异常
public static void main(String[] args) {
try {
method1();
}
 
catch(Exception ex) {
ex.printStackTrace();
}
}
 
public static void method1() throws Exception {
 
try {
 
}
 
catch(Exception ex) {
throw new Exception("new info from method1",ex);
}
}
 
public static void method2() throws Exception {
 
throw new Exception("new info from method2");
}
}
 
 
 
 
 

异常处理——java基础的更多相关文章

  1. Java基础学习笔记总结

    Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...

  2. Java中实现异常处理的基础知识

    Java中实现异常处理的基础知识 异常 (Exception):发生于程序执行期间,表明出现了一个非法的运行状况.许多JDK中的方法在检测到非法情况时,都会抛出一个异常对象. 例如:数组越界和被0除. ...

  3. Java基础学习(七) - 异常处理

    1.异常概念 异常指的是程序在执行过程中出现的非正常的情况,导致JVM的非正常停止.在Java中,异常是一个类,产生异常就是创建异常对象并抛出一个异常对象. 异常指的并不是语法错误,语法错误,编译不会 ...

  4. Java 基础-异常处理

    在 Java 中声明了很多异常类,每个异常类都表示一种运行错误.程序运行过程中发生一个可识别的运行错误时(可以找到与错误匹配的异常类,例如被除数为 0 时会触发 java.lang.Arithmeti ...

  5. [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

    如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...

  6. 【JAVA面试题系列一】面试题总汇--JAVA基础部分

    JAVA基础 基础部分的顺序: 基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法 线程的语法,集合的语法,io 的语法,虚拟机方面的语法 每天几道,持续更新!! 1.一个". ...

  7. Java基础应用

    Java集合类解析 List.Map.Set三个接口,存取元素时,各有什么特点? List 以特定次序来持有元素,可有重复元素.Set 无法拥有重复元素,内部排序.Map 保存key-value值,v ...

  8. Java基础进阶整理

    Java学习笔记整理 本文档是我个人整理的,首先是想通过完成本文档更加扎实自己的基础加强对java语言的理解,然后就是想给入了门的同志们做下贡献. 当然,本文档主要是对java语言基础(当然还有很多基 ...

  9. Java基础常见英语词汇

    Java基础常见英语词汇(共70个) ['ɔbdʒekt] ['ɔ:rientid]导向的                             ['prəʊɡræmɪŋ]编程 OO: object ...

随机推荐

  1. SpringBoot使用日志

    1.日志框架 日志门面 日志实现 JCL.SLF4J.jboss-logging Log4j.JUL.Log4j2.Logback 日志门面:SLF4J 日志实现:Logback SpringBoot ...

  2. sql判断日期是否为当前季度

    判断日期时候为当年: SELECT DateDiff(yy, '2018-01-02', GetDate()) 返回结果0为当年. 获取当前季度: SELECT DATEPART(QUARTER,GE ...

  3. mybatis逆向工程generatorConfiguration详细配置

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguratio ...

  4. springboot 默认异常处理

    SpringBoot默认有自定义异常处理的体系,在做SpringBoot项目的时候,如果是抛出了运行时异常,springBoot并会对异常进行处理,返回如下异常信息: { "timestam ...

  5. String字符串的常用方法

    1.substr():可在字符串中抽取从 start 下标开始的指定数目的字符. stringObject.substr(start,length) start:必需.要抽取的子串的起始下标.必须是数 ...

  6. Java 开发笔记

    共同学习,以下内容,随时更新. 前端 1.前端页面&apos;是单引号的转义符,"是双引号.  问题(前端JS进行参数传递时,使用的是单引号扩住变量,但是变量形式为 2019-27  ...

  7. js 取得当天0点 / 23:59:59 时间

    js 取得当天0点 / 23:59:59 时间   js 取得今天0点: const start = new Date(new Date(new Date().toLocaleDateString() ...

  8. json对象转对象

    方式1:var obj = JSON.parse(jsonObject); 方式2:var obj = eval("("+jsonObject+")");

  9. Unity中使用百度中文语音识别功能

    下面是API类 Asr.cs using System; using System.Collections; using System.Collections.Generic; using Unity ...

  10. python之路-----MySql操作三

    mysql 概述 一.主要内容: 视图 create view name (select * from user where id>5); 触发器 函数 存储过程 索引 二.各模块详细说明 1. ...