异常处理——捕获并抛出

异常处理——捕获并抛出

代码如下;

package Day09;

public class TestChanedException {
public static void main(String args[]) {
try {
method1(); // 捕获method1中的异常
} catch (Exception ex) {
ex.printStackTrace(); // 打印输出异常,首先显示method1
// 中抛出的异常,然后显示method2中抛出的异常。
}
}
public static void method1() throws Exception{
try{
method2(); //捕获method2中的异常
}
catch(Exception ex){
throw new Exception("New info from method1", ex); //抛出一个新的异常
}
}
public static void method2() throws Exception{
throw new Exception("New info from method2"); //抛出一个异常,该异常被method1 的catch块捕获
}
}

时间: 2024-12-29 11:33:04

异常处理——捕获并抛出的相关文章

JS异常捕获和抛出

try...catch 用来异常捕获(主要适用于IE5以上内核的浏览器,也是最常用的异常捕获方式) 使用onerror时间捕获异常,这种捕获方式是比较古老的一中方式,目前一些主流的浏览器暂不支持这种 捕获方式. 捕获异常的语法如下: try { //运行代码 } catch(err) { //处理错误 } 测试示例代码如下,abc是一个未定义的函数,会抛出异常,异常信息会被try catch,进入catch语句中执行 var msg = ""; try{ abc(); }catch(e

捕获Java线程池执行任务抛出的异常

Java中线程执行的任务接口java.lang.Runnable 要求不抛出Checked异常, public interface Runnable { public abstract void run();} 那么如果 run() 方法中抛出了RuntimeException,将会怎么处理了? 通常java.lang.Thread对象运行设置一个默认的异常处理方法: java.lang.Thread.setDefaultUncaughtExceptionHandler(UncaughtExce

异常抛出与捕获的思考

异常处理的思考 在java中异常分为两类.一.检查性异常.二.非检查性异常(运行时异常) 二者的区别:检查性异常需要显式try-catch或者throw.运行时异常可以不用捕获. 对于检查性异常由于必须捕获,所有并不需要太多的讨论(在设计异常的时候需要考虑).主要讨论运行时异常的抛出与捕获. 运行时异常的正确捕获和抛出,能够让系统代码更加简洁与rd只需要关系正常业务,对于不正常业务则交由异常处理. 现在存在的困扰: 1.每调用一个其他方法,都需要考虑与分析这个方法是不是存在异常,影响正常业务流程

4.异常捕获后再次抛出

4.异常捕获后再次抛出 情况一:捕获后抛出原来的异常,希望保留最新的异常抛出点--fillStackTrace 情况二:捕获后抛出新的异常,希望抛出完整的异常链--initCause 1.捕获后重新抛出捕获的异常 在函数中捕获了异常,在catch模块中不做进一步的处理,而是向上一级进行传递 catch(Exception e){ throw e; } public class ReThrow { public static void f()throws Exception{ throw new

Spring事务异常回滚,捕获异常不抛出就不会回滚(转载) 解决了我一年前的问题

最近遇到了事务不回滚的情况,我还考虑说JPA的事务有bug? 我想多了.......    为了打印清楚日志,很多方法我都加tyr catch,在catch中打印日志.但是这边情况来了,当这个方法异常时候 日志是打印了,但是加的事务却没有回滚. 例:     类似这样的方法不会回滚 (一个方法出错,另一个方法不会回滚) : if(userSave){ try { userDao.save(user); userCapabilityQuotaDao.save(capabilityQuota); }

使用throw抛出年龄异常

实现代码: /** * @author Administrator * 用户信息 */ public class User { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } //setAge设置输入年龄,并

java中异常处理机制 throw抛出自定义业务逻辑异常 throws继续抛出 catch捕获后会自动继续抛向调用方法

package com.swift; public class Exception_TestC { public static void main(String[] args) { /* * 第5题: 有一个类为ClassA,有一个类为ClassB,在ClassB中有一个方法b,此方法抛出异常,在ClassA类中有一个 * 方法a,请在这个方法中调用b,然后抛出异常.在客户端有一个类为TestC,有一个方法为c ,请在这个方法中捕 捉异常的信息.Java异常的处理机制 * * 如果try或cat

PHP 的异常处理、错误的抛出及错误回调函数 (转)

一.错误.异常 等级常量表 error:不能在编译期发现的运行期错误,不如试图用 echo 输出一个未赋值的变量,这类问题往往导致程序或逻辑无法继续下去而需要中断: exception:程序执行过程中出现意料之外的情况,逻辑上往往是行得通的,但不符合应用场景,比如接收到一个长度超出预定格式的用户命名,因此,异常主要靠编码人员做预先做判断后抛出,捕获异常后改变程序流程来处理这些情况,不必中断程序. PHP 对于异常和错误的界定似乎不是很明显,尤其是低版本的PHP. 错误和日志记录值    常量  

PHP 的异常处理、错误的抛出及错误回调函数

一.错误.异常 等级常量表 error:不能在编译期发现的运行期错误,不如试图用 echo 输出一个未赋值的变量,这类问题往往导致程序或逻辑无法继续下去而需要中断: exception:程序执行过程中出现意料之外的情况,逻辑上往往是行得通的,但不符合应用场景,比如接收到一个长度超出预定格式的用户命名,因此,异常主要靠编码人员做预先做判断后抛出,捕获异常后改变程序流程来处理这些情况,不必中断程序. PHP 对于异常和错误的界定似乎不是很明显,尤其是低版本的PHP. 错误和日志记录值    常量