Java基础——异常处理
异常的层次结构
所有的异常类都是 java.lang.Exception 类的子类型。异常类都是 Throwable 类的子类。除了异常类 Error 类也是由 Throwable 类产生的的子类
1. public String getMessage()
返回关于发生异常的细节信息,这些信息在Throwable的构造函数中被初始化
2. public Throwable getCause()
返回发生异常的原因,由 Throwable 对象来表示
3. public String toString()
返回与getMessage()的结果相联系的类的名称
4. public void printStackTrace()
打印 toString()跟踪错误输出流的栈地址的结果
5. public StackTraceElement [] getStackTrace()
返回一个数组,其中包含每个元素在栈的地址,元素的索引0代表调用栈的顶部,最后一个元素表示方法调用栈的底部
6. public Throwable fillInStackTrace()
用当前栈地址来填充 Throwable 对象的栈地址,添加到任何先前的栈地址信息
即使在到达finally块之前有一个return语句,finally块还是会执行。
package Test; import java.util.Scanner; public class test1 {
public static void main(String[] args) throws InsufficientFundsException{
Scanner input = new Scanner(System.in);
System.out.println("Enter two integers: ");
int number1 = input.nextInt();
int number2 = input.nextInt();
//1.
// if(number2 != 0)
// System.out.println(number1 + "/" + number2 + " is " + (number1 / number2));
// else
// System.out.println("你好");
//2.
try{
System.out.println(number1 + "/" + number2 + " is " + (number1 / number2));
}
//catch 关键字表示可被捕获的异常
catch(Exception e){
System.out.println("程序存在异常:"+e);
}finally {
System.out.println("结束");
}
//3.
if(number2 != 0){
System.out.println(number1 + "/" + number2 + " is " + (number1 / number2));
}else{
//抛出异常
throw new ArithmeticException("错了"); // ArithmeticException ex = new ArithmeticException("OK~");
// System.out.println(ex.getMessage());
// //throw 关键字,称为抛出一个异常
// throw ex;
}
//4.自定义异常处理
try{
System.out.println("开始");
check_test();
}catch(InsufficientFundsException e){
System.out.println(e.getScore()+"-"+e);
}finally{
System.out.println("结束");
}
}
public static void check_test() throws InsufficientFundsException{
double ac = 1.1;
System.out.println("check_test()");
throw new InsufficientFundsException(ac);
}
}
package Test; public class InsufficientFundsException extends Exception{ private double score;
/**
* 自定义异常处理方法
* @param score
*/
public InsufficientFundsException(double score) {
super("Hello SuperMan");
this.score = score;
} public double getScore(){
return score;
}
}
InsufficientFundsException.java
http://www.cnblogs.com/focusj/archive/2011/12/26/2301524.html
Java基础——异常处理的更多相关文章
- Java基础—异常处理总结
异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C开始,你也许已经知道如何用if...else...来控制异常了,也许是自发的,然而这种控制异常痛苦,同一个异常或者错误如果多个地 ...
- 十二、Java基础---------异常处理机制
异常 异常 异常就是程序在运行时产生的异常情况. 异常的由来 问题也是现实生活中的具体事物,也可以通过java 类的形式进行描述,并封装成对象.异常就是java 对不正常情况进行描述后的对象的体现. ...
- Java基础--异常处理
1.异常的传统处理方式 缺点: [1] 通过判断影响执行效率. [2] 判断逻辑和业务逻辑交织在一起,可维护性很差. public class Test01 { public static void ...
- java基础—异常处理
一.异常的概念 异常指的是运行期出现的错误,也就是当程序开始执行以后执行期出现的错误.出现错误时观察错误的名字和行号最为重要.
- Java基础-异常处理机制 及异常处理的五个关键字:try/catch/finally/throw /throws
笔记: /** 异常处理机制: 抓抛模型 * 1."抛", 一旦抛出,程序终止! printStackTrace()显示异常路径! * 2."抓", 抓住异常 ...
- Java 基础-异常处理
在 Java 中声明了很多异常类,每个异常类都表示一种运行错误.程序运行过程中发生一个可识别的运行错误时(可以找到与错误匹配的异常类,例如被除数为 0 时会触发 java.lang.Arithmeti ...
- java基础异常处理
异常的定义:中断了正常指令流的事件. try..catch..finally结构: class Test{ public static void main(String[] args){ System ...
- Java基础(四)-异常处理机制及其设计
本篇主要是记录自己所理解的Java异常处理机制(基于jdk1.7)以及怎么去处理和设计异常.还记得当初学习Java异常这块的时候都没怎么注意它的用途,以为就是简单的处理下异常,我避免程序出现这样错误就 ...
- Java基础学习之异常处理(6)
@ 目录 1.异常是什么 1.1.Error 1.2.Exception 2.异常处理机制 2.1.捕获异常 2.2.抛出异常 3.自定义异常 3.1.自定义检查性异常 3.2.自定义运行时异常 1. ...
随机推荐
- TensorFlow 基本使用
使用 TensorFlow, 你必须明白 TensorFlow: 使用图 (graph) 来表示计算任务. 在被称之为 会话 (Session) 的上下文 (context) 中执行图. 使用 ten ...
- spoj 1108
要求输出一个牌的顺序 使每隔1.2.......n翻牌后出现1 2 3 4 5 6 7 8 9 .... n 将牌想象成n个空格 正向推 空n个位置放n 循环 需优化 #include <io ...
- KMP笔记√//找最大子串,前缀自匹配长度
假设s1里找s2,然后s2进去匹配假设在第三位失配那么说明前两位是匹配成功的 如果这时候将s2后移一位相当于将s2的第一位和s2的第二位比较,如果我们已知s1(1)≠s1(2)那么就可以直接后移两位 ...
- lintcode:previous permutation上一个排列
题目 上一个排列 给定一个整数数组来表示排列,找出其上一个排列. 样例 给出排列[1,3,2,3],其上一个排列是[1,2,3,3] 给出排列[1,2,3,4],其上一个排列是[4,3,2,1] 注意 ...
- lintcode:Plus One 加一
题目: 加一 给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组. 该数字按照大小进行排列,最大的数在列表的最前面. 样例 给定 [1,2,3] 表示 123, 返回 [1,2,4 ...
- [hackerrank]Even Odd Query
https://www.hackerrank.com/contests/w5/challenges 简单题,注意整数的0次方是1,奇数. #include <iostream> #incl ...
- Sina App Engine(SAE)入门教程(1)
此教程只针对刚接触SAE的小白用户,资深码农.高手请绕道.首先还是一个经典的实例,hello sae. 创建应用 在注册完账号之后,需要到 http://sae.sina.com.cn/?m=myap ...
- Java基础:三步学会Java Socket编程
Java基础:三步学会Java Socket编程 http://tech.163.com 2006-04-10 09:17:18 来源: java-cn 网友评论11 条 论坛 第一步 ...
- ArcEngine中打开各种数据源(WorkSpace)的连接(转)
ArcEngine中打开各种数据源(WorkSpace)的连接 (SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源.在开 ...
- intellij idea 注释行如何自动缩进?
我们指代代码注释的快捷键是 Ctrl+/ 但是加注释后"//"自动放在行首,没缩进,就像这样