博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java通过抛异常来返回提示信息
阅读量:6432 次
发布时间:2019-06-23

本文共 3174 字,大约阅读时间需要 10 分钟。

结论:

如果把通过抛异常的方式得到提示信息,可以使用java.lang.Throwable中的构造函数:

public Throwable(String message) {        fillInStackTrace();        detailMessage = message;    }

public Throwable(String message, Throwable cause) {        fillInStackTrace();        detailMessage = message;        this.cause = cause;    }

原因及代码示例:
1、通过java.lang.Throwable中的Constructs

public Throwable(Throwable cause) {        fillInStackTrace();        detailMessage = (cause==null ? null : cause.toString());        this.cause = cause;    }

在输出时获取的detailMessage是:

exception.ProcessorException: java.lang.IllegalArgumentException: Failt to process

Exception信息的输出:

exception.ProcessorException: exception.ProcessorException: java.lang.IllegalArgumentException: Failt to process

code:

package exception;/*2015-8-22*/public class ExceptionChain {    public static void main(String[] args) {        Business business = new Business();        try {            business.doBusiness();        } catch (ProcessorException e) {            System.out.println(e.getMessage());            System.out.println("e:\n" + e);        }    }}class Business {    public void doBusiness() throws ProcessorException {        try {            process1();        } catch (Exception e) {            throw new ProcessorException(e);            // throw new ProcessorException(e.getMessage(), e);            // throw new ProcessorException(e.getMessage());        }    }    private void process1() throws ProcessorException {        try {            process2();        } catch (Exception e) {            // throw new ProcessorException(e.getMessage(), e);            // throw new ProcessorException(e.getMessage());            throw new ProcessorException(e);        }    }    private void process2() {        throw new IllegalArgumentException("Failt to process");    }}class ProcessorException extends Exception {    private static final long serialVersionUID = -4270191862690602942L;    public ProcessorException(Throwable cause) {        super(cause);    }    public ProcessorException(String message) {        super(message);    }    public ProcessorException(String message, Throwable cause) {        super(message, cause);    }}

2、通过java.lang.Throwable中的Constructs

public Throwable(String message) {        fillInStackTrace();        detailMessage = message;    }
/**     * Fills in the execution stack trace. This method records within this     * Throwable object information about the current state of     * the stack frames for the current thread.     *     * @return  a reference to this Throwable instance.     * @see     java.lang.Throwable#printStackTrace()     */    public synchronized native Throwable fillInStackTrace();

在输出时获取的detailMessage是:

Failt to process

 Exception信息的输出:

exception.ProcessorException: Failt to process

code:

把上面示例代码中throw new ProcessorException(e.getMessage());注释去掉,把 // throw new ProcessorException(e);注释
3、通过java.lang.Throwable中的Constructs:

public Throwable(String message, Throwable cause) {        fillInStackTrace();        detailMessage = message;        this.cause = cause;    }

在输出时获取的detailMessage是:

Failt to process

Exception信息的输出:

exception.ProcessorException: Failt to process

code:

操作方式与2相同 

转载地址:http://ltaga.baihongyu.com/

你可能感兴趣的文章
数据库分离附加(附日记丢失的处理)
查看>>
HTML5 input placeholder 颜色 改动
查看>>
批量缩略图生成工具
查看>>
1. 用U盘安装Centos6.5 + Win7 双系统
查看>>
Autodesk 最新开发技术研讨会 -8月22日-Autodesk北京办公室
查看>>
从Mac远程控制Windows
查看>>
用户空间缺页异常pte_handle_fault()分析--(下)--写时复制【转】
查看>>
非常好!!!【从头开始写操作系统系列】实现一个-GDT(1)【转】
查看>>
2、ipconfig命令
查看>>
【转】IOS高级教程1:处理1000张图片的内存优化
查看>>
发掘VS2005 SP1 (二) 更好的支持主题
查看>>
Selenium 致命杀手(有关自动化的通病)
查看>>
现代软件工程讲义 3 结对编程和两人合作
查看>>
我YY的一个移动应用运营模式
查看>>
Silverlight 解密游戏 之十 自定义粒子特效
查看>>
Apache Server 负载均衡
查看>>
SgmlReader使用方法
查看>>
Python天天美味(7) - 连接字符串(join %)
查看>>
[芯片] 3、接口技术·实验三·可编程并行接口8255A
查看>>
20条.net编码习惯
查看>>