`
kinkding
  • 浏览: 148367 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Exception处理的一个技巧

    博客分类:
  • JAVA
 
阅读更多
package test2;

public class Test {
    Log log = new Log();

    public void a1() {
        log.enter();
        a2();
        log.exit();
    }

    public void a2() {
        log.enter();
        a3("a");
        log.exit();
    }

    public void a3(String s) {
        log.enter();
        a4();
        log.exit();
    }

    public void a4() {
        log.enter();
        log.exit();
    }

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
        Test t = new Test();
        t.a1();
    }
}

class Log {
    public void enter() {
        //System.out.println("enter");
        printTrace("enter");
    }

    public void exit() {
        //System.out.println("exit");
        printTrace("exit");
    }

    private void printTrace(String s) {
        try {
            throw new Exception("xxxx");
        } catch (Exception ex) {
            StackTraceElement[] stackTraces = ex.getStackTrace();
            if (stackTraces.length > 2) {
                System.out.println( s + " " +getMessage(stackTraces[2]));
            }
        }
    }

    private String getMessage(StackTraceElement st) {
        return st.getClassName() + "." + st.getMethodName();
        //return st.toString();
    }
}

 

运行后输出如下:

enter test2.Test.a1
enter test2.Test.a2
enter test2.Test.a3
enter test2.Test.a4
exit test2.Test.a4
exit test2.Test.a3
exit test2.Test.a2
exit test2.Test.a1

分享到:
评论

相关推荐

    C# WINFORM应用程序未处理异常的统一处理技巧

    无论对于自身的代码安全还是良好的用户体验出发,这种现象都是不好的,一个健壮,成熟的应用程序应该有良好的容错能力,并且在出错后自动做出相应BUG的处理,记录,本文和大家探讨这种情况的一般处理方法,老鸟请...

    C++异常处理技巧try/catch/throw/finally/exception

    异常处理的基本思想是简化程序的错误代码,为程序键壮性提供一个标准检测机制。 本文为你解释怎样处理C++的异常处理。提供了大量的code

    java开发中的一些常用小技巧

    一.用JDBC时的一些注意事项 ... b执行每一个新的sql语句前,上一次执行sql语句的Statement(或者PreparedStatemet)必须先close ; c、提交 connn.commit; d、如果发生异常,那么回滚 conn.rollback;

    分享Visual Studio原生开发的10个调试技巧

    最近碰巧读了Ivan Shcherbakov写的一篇文章,《11个强大的Visual Studio调试小技巧》。这篇文章只介绍了一些有关Visual Studio的基本调试技巧,但是还有其他一些同样有用的技巧。我整理了一些Visual Studio(至少在...

    一些.NET对多线程异常处理技巧分享

    多线程环境 在我们的产品 SE 中,出现多线程的地方主要有两大类,一类是通过 ThreadPool 或 new Thread 主动发起多线程,另一类是 Socket 通讯回调。 多线程异常捕获 对于一般的异常处理来说,我们只要简单的将可能...

    PHP Try-catch 语句使用技巧

    为了进一步处理异常,我们需要使用try-catch语句—-包括Try语句和至少一个的catch语句。任何调用 可能抛出异常的方法的代码都应该使用try语句。Catch语句用来处理可能抛出的异常。以下显示了我们处理...

    深入浅出MIPS

    注意 Load/Store 都必须对应一个对齐的地址,否 则会引发一个异常(Exception)。 MIPS 支持最多 4 个协处理器。协处理器 CP0 为 CPU 的控制协处理器,是体系结构中必须 实现的。CP1 为浮点处理器。CP2 保留,各生产...

    j2se项目源码及介绍_last指令

    在Unix系统中,有一个last指令可以查看用户登录服务器的历史记录,last指令的工作原理就是读取unix下的一个系统文件,解析然后输出的效果。 在今后的电信用户数据采集系统项目中,就是通过读取该系统文件来确定用户...

    电子科大老师的HFSS学习资料.zip

    01_课程设置 02_微波工程中的数值计算方法 03_如何建立模型 04_模型设置技巧 05_微带波导转换例子 06_HFSS的求解器 07_HFSS的后处理 07_批处理 08_Exercise 06_optimetrics入门

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    对Java语言的每个语法都提供了一个或多个例程讲解 大量使用流程图表示程序的执行过程,使用结构图表示程序的内部状态 每章最后都给出了典型的练习题,让读者及时练习,巩固提高,并提供了参考答案 目录 第1篇 ...

    Java异常处理与throws关键字用法分析

    主要介绍了Java异常处理与throws关键字用法,结合实例形式分析了java常见的异常、错误处理及throws关键字相关使用技巧、注意事项,需要的朋友可以参考下

    简洁的Net程序开发指导

    一.项目架构 3 1.技术点扩展和改进 4 2.Asp.Net MVC框架 4 二....1.几种常用的命名规则 5 ...2.异常处理(Exception) 19 2.1.SystemException 19 2.2.ApplicationException 19 2.3.异常处理的方法技巧 20 3.日志书写 20

    .NET性能优化方法 学习笔记 (详细整理版)

    1. C#语言方面 1.1 垃圾回收 1.1.1 避免不必要的对象创建 1.1.2 不要使用空析构函数 ★ ...1.5.5 捕获指定的异常,不要使用通用的System.Exception. 1.5.6 要在finally里释放占用的资源 1.6 反射 1.6.

    jdbc连接数据库的方式2

    下面是使用JDBC连接MySql的一个小的教程 1、查找驱动程序 MySQL目前提供的java驱动程序为Connection/J,可以从MySQL官方网站下载,并找到mysql-connector-java-3.0.15-ga-bin.jar文件,此驱动程序为纯java驱动...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    对Java语言的每个语法都提供了一个或多个例程讲解 大量使用流程图表示程序的执行过程,使用结构图表示程序的内部状态 每章最后都给出了典型的练习题,让读者及时练习,巩固提高,并提供了参考答案 目录 第1篇 ...

    PHP和MySQL Web开发第4版pdf以及源码

    1.2 创建一个示例应用:Bob汽车零部件商店 1.2.1 创建订单表单 1.2.2 表单处理 1.3 在HTML中嵌入PHP 1.3.1 使用PHP标记 1.3.2 PHP语句 1.3.3 空格 1.3.4 注释 1.4 添加动态内容 1.4.1 调用函数 1.4.2 使用...

    PHP和MySQL Web开发第4版

    1.2 创建一个示例应用:Bob汽车零部件商店 1.2.1 创建订单表单 1.2.2 表单处理 1.3 在HTML中嵌入PHP 1.3.1 使用PHP标记 1.3.2 PHP语句 1.3.3 空格 1.3.4 注释 1.4 添加动态内容 1.4.1 调用函数 1.4.2 使用...

    PHP和MySQL WEB开发(第4版)

    1.2 创建一个示例应用:Bob汽车零部件商店 1.2.1 创建订单表单 1.2.2 表单处理 1.3 在HTML中嵌入PHP 1.3.1 使用PHP标记 1.3.2 PHP语句 1.3.3 空格 1.3.4 注释 1.4 添加动态内容 1.4.1 调用函数 1.4.2 使用date()函数...

    SQL21日自学通

    你的第一个查询 33 总结 37 问与答 38 校练场 38 练习 39 第三天表达式条件语句与运算 40 第四天函数对数据的进一步处理 60 目标 60 汇总函数 60 COUNT61 SUM 61 AVG 63 MAX 63 MIN 64 VARIANCE65 STDDEV66 日期/...

Global site tag (gtag.js) - Google Analytics