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. 同时安装多个的Mysql的实现方法

    首写修改my.ini文件 修改这几项即可 [client] port= [mysql] default-character-set=utf8 [mysqld] port= server_id= 全文如 ...

  2. VS2017 提示警告 IDE0006

    MS的错误帮助:https://github.com/dotnet/roslyn/wiki/Diagnosing-Project-System-Build-Errors 看起来好复杂- 其实嘛- 检查 ...

  3. html中div使用CSS实现水平/垂直居中的多种方式

    CSS中的居中,在工作中,会经常遇到.它可以分为水平居中和垂直居中,以下是几种实现居中的方式. git 查看源码 配合在线预览,效果更佳 以下例子中,涉及到的CSS属性值. .parent-frame ...

  4. sql--迁移条件数据和补全数值的一个流程

    目的:我要把老顾客的部分数据迁移到另一个表里面 -- 步骤一:筛选查询-- 打开表,只显示想要看到的数据列-- 做条件筛选,筛选出想要的数据 -- 步骤二:sql查询 SELECT ID,Name,G ...

  5. sql server实现简繁转换

    /*--调用示例 gb_to_big和big_to_gb表存放着常用的简繁字 --可以百度到常用的简体汉字,然后用excel转换成繁体  再导入数据库. --转换为繁体 select dbo.f_GB ...

  6. pkuwc2018题解

    题解: 思路挺好想的..然而今天写代码写成傻逼了 d1t1: 首先比较暴力的就是$f[i][j]$表示i个这个点是j的概率 然后前缀和一下dp就是$n^2$的 部分分树形态随机就说明树深度是$log$ ...

  7. C# Aspose.Cells 如何设置单元格样式

    //Instantiating a Workbook object Workbook workbook = new Workbook(); //Adding a new worksheet to th ...

  8. Web API之基于H5客户端分段上传大文件

    http://www.cnblogs.com/OneDirection/articles/7285739.html 查询很多资料没有遇到合适的,对于MultipartFormDataStreamPro ...

  9. 前端校验插件——Validator简单使用

    >>>>>>>>>>>>>>>>>>>>>>>>> ...

  10. 用Count() > 0 来判断集合非空的问题

    Linq 出现之前,我们通常使用下面的方式来判断集合是否非空,即集合包含元素: ]; ; var list = new List<string>(); ; var collection = ...