结论:
如果把通过抛异常的方式得到提示信息,可以使用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通过抛异常来返回提示信息相关推荐

  1. java 抛出异常 返回值_java通过抛异常来返回提示信息

    结论: 如果把通过抛异常的方式得到提示信息,可以使用java.lang.Throwable中的构造函数: public Throwable(String message) { fillInStackT ...

  2. 关于接口使用抛异常还是返回错误码,下列哪些说法符合《阿里巴巴Java开发手册》

    关于接口使用抛异常还是返回错误码,下列哪些说法符合<阿里巴巴Java开发手册>:答案在文末 A. 向公司外部提供的http/api接口,推荐使用"错误码"方式返回异常或 ...

  3. java 向上抛异常_Java 异常的处理方式throws

    在昨天的文章<Java 异常的分类与处理>中我们简单地了解了一下在方法声明的位置上使用throws关键字向上抛出异常,下面深入讲解异常的第一种处理方式throws. 下面深入讲解异常的第一 ...

  4. java 如何抛异常_如何在Java中抛出异常?

    有时我们可能需要重新抛出Java中的异常.如果catch块无法处理已捕获的特定异常,则可以重新抛出该异常.重新抛出表达式导致原始抛出的对象被重新抛出. 因为已经在发生重新抛出表达式的范围内捕获了异常, ...

  5. java抛异常 代替返回_Java使用和C++类似的异常处理

    Java使用和C++类似的异常处理 (2007-07-12 18:16:19) 1.处理错误的方法有很多流行方法 2.一般方法是把程序处理代码段分散到系统代码中,在可能发生错误的地方处理错误 优点:便 ...

  6. java抛异常 代替返回_请问业务层方法是抛出一个异常好还是返回一个结果更好...

    @Override public Response checkUserToken(long uid, String accessToken, String deviceToken){ Response ...

  7. java 手动抛异常_Java 异常处理 之 手动抛出异常

    一.手动抛出异常 throw 在编写程序时,我们必须要考虑程序出现问题的情况.比如,在定义方法时,方法需要接受参数.那么,当调用方法使用接受到的参数时,首先需要先对参数数据进行合法的判断,数据若不合法 ...

  8. java 向上抛异常_java throws 向上抛出的概念问题

    展开全部 ------------------附注------------------------ 向上抛出的意思 针对  子类 父类, 这里面涉及到几个方面,最重323131333532363134 ...

  9. java 手动抛异常_Java如何在没有throws签名的函数中手动抛出异常

    如果想在方法中抛出异常,像下面这样直接throw是不行的.public void test() { throw new Exception(); } 这时编译器会给我们一个错误: Error:(101 ...

最新文章

  1. Solr4.7新建core
  2. linux小工具(1)查看shell的命令行历史记录
  3. 智能驾驶板块_智能驾驶股票有哪些?智能驾驶股票一览
  4. 计算机网络解释概念,2017年计算机三级网络技术基本概念与名词解释:计算机网络的基本概念...
  5. 飞鸽传书要是懒惰就会长胖
  6. 【pnpm】pnpm : 无法加载文件 C:\Users\M_F15\AppData\Roaming\npm\pnpm.ps1
  7. 修改XP登陆界面教程
  8. spss实现主成分分析
  9. aix oracle 创建实例,11gR2 for AIX使用dbca创建数据库遇到ORA-03113错误的案例
  10. 深度学习实战22(进阶版)-AI漫画视频生成模型,做自己的漫画视频
  11. 深度揭密SSD中的原片-白片-黑片:莫贪小便宜
  12. 屁股决定脑袋--是否可以把0603电容更换为0402的电容
  13. 马库斯批判Hinton、吴恩达、LeCun等煽风点火!炒作将带来AI寒冬
  14. KaTex公式居左对齐
  15. java // for // 俄文字母表
  16. 一键解决Windows照片查看器故障
  17. 【Arduino学习笔记】E18-D50NK红外避障传感器使用说明
  18. Adobe Flash Player
  19. 360杀软检测机制猜想
  20. 初识Android的ReactiveX

热门文章

  1. 祝所有51cto的朋友光棍节快乐
  2. MyEclipse搭建java Web项目开发环境
  3. docker 建mysql
  4. 进击的Python【第一章】:Python背景初探与Python基础(一)
  5. 傻子的成长日记,编程路上 2016-04-07
  6. 【心情】为什么发英文版免责声明?
  7. 用Flutter改造ZS项目小记一:界面显示一张图片
  8. linux用户和文件目录管理
  9. 如何将github上源代码导入eclipse中
  10. .NET笔试题集(一)