package com.gezhi;
/**
 * 创建一个自定义异常SpendMoneyException类
 *
 * @author square 凉
 *
 */
@SuppressWarnings("serial")
/**
 * 该类继承异常类的父类Exception
 *
 * @author square 凉
 *
 */
public class SpendMoneyException extends Exception {
 /**
  * 显示写出自定义异常的无参构造器
  */
 public SpendMoneyException() {
 }
 /**
  * 创建一个自定义异常的有参构造器(重写父类的有参构造,严格来说不能是重写)
  *
  * @param message
  */
 public SpendMoneyException(String message) {
  super(message);
 }
}
...................................................................................
package com.gezhi;
/**
 * @ 创建一个异常类
 * @author square 凉
 *
 */
public class ChainTest {
 /**
  * main方法调用test2这个方法,捕获并处理被抛出的方法
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  ChainTest ct = new ChainTest();//实例化一个类对象
  try {
   ct.test2();//调用test2()这个方法
  } catch (Exception e) {
   // TODO: handle exception
   e.printStackTrace();//捕获这个异常并打印异常发生的位置
  }
  
 }
 /**
  * 创建test2()这个方法引用test1的方法并捕获异常且不处理,继续抛给main方法
  */
 private void test2() {
  // TODO Auto-generated method stub
  try {
   test1();//调用test1方法
  } catch (SpendMoneyException e) {
   // TODO Auto-generated catch block
   RuntimeException rn = new RuntimeException("一分钱一分货");//将test1里面抛出的自定义异常又声明为运行时异常继续抛出
   rn.initCause(e);//引起该运行时异常的原因和异常地址
   throw rn;//抛出新的异常
  }
 }
 /**
  * test1方法声明一个自定义异常
  * @throws SpendMoneyExceptionSpendMoneyException不处理继续向下抛出
  */
 private static void test1() throws SpendMoneyException {
  // TODO Auto-generated method stub
  throw new SpendMoneyException("没钱啦!!!");
  
 }
}
......................

Java中异常的处理以及自定义异常,抛出异常到方法调用栈底层的更多相关文章

  1. Java中异常关键字throw和throws使用方式的理解

    Java中应用程序在非正常的情况下停止运行主要包含两种方式: Error 和 Exception ,像我们熟知的 OutOfMemoryError 和 IndexOutOfBoundsExceptio ...

  2. 浅谈java中异常抛出后代码是否会继续执行

    问题 今天遇到一个问题,在下面的代码中,当抛出运行时异常后,后面的代码还会执行吗,是否需要在异常后面加上return语句呢? public void add(int index, E element) ...

  3. java中异常的抛出:throw throws

    java中异常的抛出:throw throws Java中的异常抛出 语法: public class ExceptionTest{ public void 方法名(参数列表) throws 异常列表 ...

  4. java中异常以及处理异常

    一.异常简介 什么是异常? 异常就是有异于常态,和正常情况不一样,有错误出错.在java中,阻止当前方法或作用域的情况,称之为异常. java中异常的体系是怎么样的呢? 1.Java中的所有不正常类都 ...

  5. 《java中异常和错误》

    异常和错误的区别. 异常: 在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让你知道,你(开发 ...

  6. java中异常介绍

    一.异常概述 异常处理已经成为衡量一门语言是否成熟的标准之一,目前的主流编程语言如C++.C#.Ruby.Python等,大都提供了异常处理机制.增加了异常处理机制后的程序有更好的容错性,更加健壮. ...

  7. [转载]Java中异常的捕获顺序(多个catch)

    http://blog.sina.com.cn/s/blog_6b022bc60101cdbv.html [转载]Java中异常的捕获顺序(多个catch) (2012-11-05 09:47:28) ...

  8. Java中的关键字有哪些?「Java中53个关键字的意义及使用方法」

    Java中的关键字有哪些? 1)48个关键字:abstract.assert.boolean.break.byte.case.catch.char.class.continue.default.do. ...

  9. Java中返回值定义为int类型的 方法return 1返回的是int还是Integer&&finally中return问题

    在Java中返回值定义为int类型的 方法return 1:中返回的是Integer值,在返回的时候基本类型值1被封装为Integer类型. 定义一个Test类,在异常处理try中和finally中分 ...

随机推荐

  1. Epson L4158打印机安装与配置

    上周购买了一台打印.扫描.复印三合一的Epson L4158喷墨打印机,主要用于打印数学纸版笔记套图.长笛乐谱.常用软件的cheatsheet(例如,GNU/Linux命令.GNU Emacs快捷键. ...

  2. Linux下使用http协议下载文件

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h&g ...

  3. Go之十大经典排序算法

    1.冒泡排序 func bubble_sort(li []int) { for i := 0; i < len(li)-1; i++ { exchange := false for j := 0 ...

  4. Codeforces 438E. The Child and Binary Tree 多项式,FFT

    原文链接www.cnblogs.com/zhouzhendong/p/CF438E.html 前言 没做过多项式题,来一道入门题试试刀. 题解 设 $a_i$ 表示节点权值和为 $i$ 的二叉树个数, ...

  5. Linux从入门到进阶全集——【第十四集:Shell编程】

    正则表达式(与通配符) 正则表达式:匹配字符串,属于包含匹配[只要包含匹配条件就行],grep,awk,sed等命令支持正则表达式 通配符(*,?,[]):匹配文件名,属于完全匹配[必须是完全匹配条件 ...

  6. 树莓派B+使用入门&RPI库安装&wringPi库安装

    最近看看试用一下树莓派进行一些开发操作,于是入手一块Raspberry Pi B+的板子来玩.由于没有显示器,没有备用的键盘和鼠标,所以想到用SSH来控制树莓派,刚开始还很担心已经安装好的操作系统到底 ...

  7. 教你如何用勾勾街快速生成一个苹果IOS APP

    现在苹果手机上的各种各样的APP,想不想也有一款属于自己的专属APP?很简单,用勾勾街可以在3分钟内快速制作一款,快来看看! 工具平台: 勾勾街 (www.gogojie.com ) 操作方法: 1. ...

  8. hcna(华为)_Telnet篇

    Telnet提供了一个交互式操作界面,允许终端远程登录到任何可以充当 Telnet服务器的设备.Telnet用户可以像通过Console口本地登录一样对 设备进行操作.远端Telnet服务器和终端之间 ...

  9. 06flask_migrate

    1,flask-migrate介绍: 因为采用db.create_all()在后期修改字段的时候不会自动的映射到数据库中,必须删去表,然后运行 db.create_all()才会重新映射,这样不符合我 ...

  10. 我的 FPGA 学习历程(07)—— BCD 编码:移位加 3 算法

    2-10 进制码,也称为 BCD 码,它的编码方式则是通过一个 4 位二进制来表示一个 10 进制数,部分十进制对应的 BCD 码如下 十进制数 | BCD 码 13 --> 0001_0011 ...