java通过抛异常来返回提示信息
结论:
如果把通过抛异常的方式得到提示信息,可以使用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* <code>Throwable</code> object information about the current state of* the stack frames for the current thread.** @return a reference to this <code>Throwable</code> 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相同
java通过抛异常来返回提示信息相关推荐
- java 抛出异常 返回值_java通过抛异常来返回提示信息
结论: 如果把通过抛异常的方式得到提示信息,可以使用java.lang.Throwable中的构造函数: public Throwable(String message) { fillInStackT ...
- 关于接口使用抛异常还是返回错误码,下列哪些说法符合《阿里巴巴Java开发手册》
关于接口使用抛异常还是返回错误码,下列哪些说法符合<阿里巴巴Java开发手册>:答案在文末 A. 向公司外部提供的http/api接口,推荐使用"错误码"方式返回异常或 ...
- java 向上抛异常_Java 异常的处理方式throws
在昨天的文章<Java 异常的分类与处理>中我们简单地了解了一下在方法声明的位置上使用throws关键字向上抛出异常,下面深入讲解异常的第一种处理方式throws. 下面深入讲解异常的第一 ...
- java 如何抛异常_如何在Java中抛出异常?
有时我们可能需要重新抛出Java中的异常.如果catch块无法处理已捕获的特定异常,则可以重新抛出该异常.重新抛出表达式导致原始抛出的对象被重新抛出. 因为已经在发生重新抛出表达式的范围内捕获了异常, ...
- java抛异常 代替返回_Java使用和C++类似的异常处理
Java使用和C++类似的异常处理 (2007-07-12 18:16:19) 1.处理错误的方法有很多流行方法 2.一般方法是把程序处理代码段分散到系统代码中,在可能发生错误的地方处理错误 优点:便 ...
- java抛异常 代替返回_请问业务层方法是抛出一个异常好还是返回一个结果更好...
@Override public Response checkUserToken(long uid, String accessToken, String deviceToken){ Response ...
- java 手动抛异常_Java 异常处理 之 手动抛出异常
一.手动抛出异常 throw 在编写程序时,我们必须要考虑程序出现问题的情况.比如,在定义方法时,方法需要接受参数.那么,当调用方法使用接受到的参数时,首先需要先对参数数据进行合法的判断,数据若不合法 ...
- java 向上抛异常_java throws 向上抛出的概念问题
展开全部 ------------------附注------------------------ 向上抛出的意思 针对 子类 父类, 这里面涉及到几个方面,最重323131333532363134 ...
- java 手动抛异常_Java如何在没有throws签名的函数中手动抛出异常
如果想在方法中抛出异常,像下面这样直接throw是不行的.public void test() { throw new Exception(); } 这时编译器会给我们一个错误: Error:(101 ...
最新文章
- Solr4.7新建core
- linux小工具(1)查看shell的命令行历史记录
- 智能驾驶板块_智能驾驶股票有哪些?智能驾驶股票一览
- 计算机网络解释概念,2017年计算机三级网络技术基本概念与名词解释:计算机网络的基本概念...
- 飞鸽传书要是懒惰就会长胖
- 【pnpm】pnpm : 无法加载文件 C:\Users\M_F15\AppData\Roaming\npm\pnpm.ps1
- 修改XP登陆界面教程
- spss实现主成分分析
- aix oracle 创建实例,11gR2 for AIX使用dbca创建数据库遇到ORA-03113错误的案例
- 深度学习实战22(进阶版)-AI漫画视频生成模型,做自己的漫画视频
- 深度揭密SSD中的原片-白片-黑片:莫贪小便宜
- 屁股决定脑袋--是否可以把0603电容更换为0402的电容
- 马库斯批判Hinton、吴恩达、LeCun等煽风点火!炒作将带来AI寒冬
- KaTex公式居左对齐
- java // for // 俄文字母表
- 一键解决Windows照片查看器故障
- 【Arduino学习笔记】E18-D50NK红外避障传感器使用说明
- Adobe Flash Player
- 360杀软检测机制猜想
- 初识Android的ReactiveX