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. 浅谈UML中常用的几种图——类图

    在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...

  2. 【IDEA填坑】xml不编译

    今天在maven编译Springboot项目的时候,发现src/main/resources下的配置文件编译失败(就是war包中没有放入xml配置文件导致程序启动失败),经查询资料,发现新版本的IDE ...

  3. jsp的page、request、session、application四个作用域的作用

    1.page作用域也是最小的作用域,它只能在当前页面中使用. 2.request作用域主要是发送请求,但只能在两个页面之间发送一次请求. 3.session作用域是一个会话,也就是一个浏览器,意思是说 ...

  4. 如何将baseUrl项目地址提取放到放到static

    原本项目的baseUrl地址是放在src/common/config.js ,但是这有一个缺点,就是本地测试一个地址,生产一个地址.每发一次不同環境的包就要build一下,太麻烦了!有没有解决的办法呢 ...

  5. python+selenium+xpath 爬取天眼查工商基本信息

    # -*- coding:utf-8 -*-# author: kevin# CreateTime: 2018/8/16# software-version: python 3.7 import ti ...

  6. mpvue学习笔记(一) 基础介绍

    一. 小程序环境搭建 后台地址:https://mp.weixin.qq.com/ 文档地址:https://developers.weixin.qq.com/miniprogram/dev/ 注册账 ...

  7. 数据可视化之 tick_params( 参数 )

    参考:https://blog.csdn.net/helunqu2017/article/details/78736554/ 初学数据可视化,遇到了tick_params() 里面传参数问题,找了一些 ...

  8. python中的turtle库(图形绘画库)

    turtle绘图的基础知识:1. 画布(canvas) 画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置. 设置画布大小 turtle.screensize(canvwidt ...

  9. javascript中的add(1)(2)(3)(4)是怎么实现的

    javascript中的add(1)(2)(3)(4)是怎么实现的?实现如下: var fn = function(a){ let sum = a; let tempFn = function(b){ ...

  10. python之路-格式化输出、编码

    格式化输出 user = input('Username:') pwd = input('Password:') msg = 'your username:%s,your password:%d,10 ...