异常的层次结构
  所有的异常类都是 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基础——异常处理的更多相关文章

  1. Java基础—异常处理总结

      异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C开始,你也许已经知道如何用if...else...来控制异常了,也许是自发的,然而这种控制异常痛苦,同一个异常或者错误如果多个地 ...

  2. 十二、Java基础---------异常处理机制

    异常 异常 异常就是程序在运行时产生的异常情况. 异常的由来 问题也是现实生活中的具体事物,也可以通过java 类的形式进行描述,并封装成对象.异常就是java 对不正常情况进行描述后的对象的体现. ...

  3. Java基础--异常处理

    1.异常的传统处理方式 缺点: [1] 通过判断影响执行效率. [2] 判断逻辑和业务逻辑交织在一起,可维护性很差. public class Test01 { public static void ...

  4. java基础—异常处理

    一.异常的概念 异常指的是运行期出现的错误,也就是当程序开始执行以后执行期出现的错误.出现错误时观察错误的名字和行号最为重要.

  5. Java基础-异常处理机制 及异常处理的五个关键字:try/catch/finally/throw /throws

    笔记: /** 异常处理机制: 抓抛模型 * 1."抛", 一旦抛出,程序终止! printStackTrace()显示异常路径! * 2."抓", 抓住异常 ...

  6. Java 基础-异常处理

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

  7. java基础异常处理

    异常的定义:中断了正常指令流的事件. try..catch..finally结构: class Test{ public static void main(String[] args){ System ...

  8. Java基础(四)-异常处理机制及其设计

    本篇主要是记录自己所理解的Java异常处理机制(基于jdk1.7)以及怎么去处理和设计异常.还记得当初学习Java异常这块的时候都没怎么注意它的用途,以为就是简单的处理下异常,我避免程序出现这样错误就 ...

  9. Java基础学习之异常处理(6)

    @ 目录 1.异常是什么 1.1.Error 1.2.Exception 2.异常处理机制 2.1.捕获异常 2.2.抛出异常 3.自定义异常 3.1.自定义检查性异常 3.2.自定义运行时异常 1. ...

随机推荐

  1. Sandcastle:生成.NET API文档的工具 (帮忙文档)

    (1)准备软件 首先需要我们准备如下软件: SandCastle, 下载地址: http://sandcastle.codeplex.com/releases/view/47665 (2)准备项目文件 ...

  2. android2.3 -添加自定义按键:作唤醒功能 .

    最近需要做个唤醒功能,当按键的时候android系统唤醒并点亮屏,在长按键中,系统不能在进入睡眠. 驱动方面: 1:在平台设备文件中添加 一个按键,定义为唤醒源! \arch\arm\mach-s5p ...

  3. jsp bean标签

    jsp中存在一个奇奇怪怪的bean标签. 例如 现在在java包中定义一个类test2 package bean; public class test { private int number; pu ...

  4. 轻轻修改配置文件完成 OpenStack 监控

    当我们使用虚拟化云平台 OpenStack 时,必然要时时监控其虚拟机性能,随着近年企业级数据中心的不断发展,像混合虚拟化环境的业务需求也在持续增长中,因而也随之带来的监控需求更显重要,所以小编带来一 ...

  5. .net web部署(IIS Express && Nancy Self-Hosting)

    http://d.hatena.ne.jp/fkmt5/20140330/1396195246 [1]Nancy Web配置注意事项 添加url:netsh http add urlacl url=h ...

  6. 通过快捷键及cmd命令注销系统

    公司的外网内网是隔离的 外网的远程电脑屏幕一半卡那了,页面注销键正好在卡死的那一半屏幕上,用以下简单方法注销远程重新连接,问题解决了. 1.通过快捷键win+r打开“运行...” 2.输入CMD 回车 ...

  7. Project Euler 83:Path sum: four ways 路径和:4个方向

    Path sum: four ways NOTE: This problem is a significantly more challenging version of Problem 81. In ...

  8. MIT算法导论——第四讲.Quicksort

    本栏目(Algorithms)下MIT算法导论专题是个人对网易公开课MIT算法导论的学习心得与笔记.所有内容均来自MIT公开课Introduction to Algorithms中Charles E. ...

  9. 对于delphi for linux心存梦想的同学,彻底醒醒吧

    Borland 曾经多次做市场调查,很多人呼吁推出delphi for linux.可是直到kylix发展到第三版,borland才明白:一个内置C编译器环境并与之关系紧密的免费OS,没有人愿意花钱去 ...

  10. 31. Next Permutation

    题目: Implement next permutation, which rearranges numbers into the lexicographically next greater per ...