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. package.json bin的作用

    许多包有一个或多个可执行文件(executable),他们希望直接导入到全局路径里面,这样可以直接使用,npm很容易达到这点, A lot of packages have one or more e ...

  2. iview table 实现在数据中自定义标识

    做了一个商旅订票的项目,在详情中有一个因公超标在表格中用一个“超”字显示的需求.后台框架用的iview+vue,也就是在iview Table中改变.在iview的框架中改变东西首先要想到的是ivie ...

  3. 新建ui文件及相应.h和.cpp文件

    1.在Qt Creator中新建一个任意的项目(如untitled): 2.在该项目中添加QT设计师界面类:   3.将新建的3个文件(.ui..h..cpp)拷贝到目标项目文件夹中: 4.分别在目标 ...

  4. 下面程序的输出结果是____ A:11,10 B:11,11 C:10,10 D:10,11 int x=10; int y=x++; printf("%d,%d",(x++,y),y++);

    下面程序的输出结果是____ A:11,10 B:11,11 C:10,10 D:10,11 int x=10; int y=x++; printf("%d,%d",(x++,y) ...

  5. Sed练习

    sed:编辑器 sed:Stream EDitor,行编辑器 用法:        sed [opthon]... ‘script’ inputfile.. scritp:‘地址命令’ 常用选项:   ...

  6. angular学习3

    #创建了一个component 查看angular.json文件: "prefix":"app", 在所创建的component的selector上添加了app ...

  7. Previous operation has not finished;run 'cleanup' if it was interrupted;Please execute the 'Cleanup' command.

    今天更新文件夹时svn报错如下 提示说让clean up,但是clean up又提示fail,让继续clean up,这样就陷入死循环了…… 搜了多种解决办法后找到原因:当时正在打开着svn的某个文件 ...

  8. cropper截图不压缩PHP上传裁剪后的图片

    cropperjs使用不多说网上都有很详细的介绍如下面: https://blog.csdn.net/lxy4239/article/details/78920979 主要讲下使用的经历 裁剪后图片不 ...

  9. c# .net core 设置缓存

    1.开启ResponseCaching的缓存(ResponseCaching相当于老版本的OutPutCache): 在Startup.cs文件中设置: public void ConfigureSe ...

  10. js简单封装样式

    class Foo{ constructor(name) { this.name = name } greet() { console.log('hello this is',this.name) } ...