结论:

如果把通过抛异常的方式得到提示信息,可以使用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

publicThrowable(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:

packageexception;/*2015-8-22*/

public classExceptionChain {public static voidmain(String[] args) {

Business business= newBusiness();try{

business.doBusiness();

}catch(ProcessorException e) {

System.out.println(e.getMessage());

System.out.println("e:\n" +e);

}

}

}classBusiness {public void doBusiness() throwsProcessorException {try{

process1();

}catch(Exception e) {throw newProcessorException(e);//throw new ProcessorException(e.getMessage(), e);//throw new ProcessorException(e.getMessage());

}

}private void process1() throwsProcessorException {try{

process2();

}catch(Exception e) {//throw new ProcessorException(e.getMessage(), e);//throw new ProcessorException(e.getMessage());

throw newProcessorException(e);

}

}private voidprocess2() {throw new IllegalArgumentException("Failt to process");

}

}class ProcessorException extendsException {private static final long serialVersionUID = -4270191862690602942L;publicProcessorException(Throwable cause) {super(cause);

}publicProcessorException(String message) {super(message);

}publicProcessorException(String message, Throwable cause) {super(message, cause);

}

}

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

publicThrowable(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.

*

*@returna reference to this Throwable instance.

*@seejava.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:

publicThrowable(String message, Throwable cause) {

fillInStackTrace();

detailMessage=message;this.cause =cause;

}

在输出时获取的detailMessage是:

Failt to process

Exception信息的输出:

exception.ProcessorException: Failt to process

code:

操作方式与2相同

java 抛出异常 返回值_java通过抛异常来返回提示信息相关推荐

  1. java 函数参数 返回值_java中如何用函数返回值作为post提交的参数?

    1.我想实现的功能是在java程序中导入HttpURLConnection类,然后将函数的值作为post方法要提交的参数,最后显示在显示台上. 2.要用到的函数是自己写的可以显示实时计算机cpu.内存 ...

  2. java run() 返回值_java线程的run()没有返回值怎么办?

    用线程Thread执行一些方法后,需要判断执行是否成功. public void run() {} run( ) 方法返回值是空, 怎么办? 解决方法: Note 使用 call() 方法 Calla ...

  3. java compareto 返回值_Java comparable接口及compareTo返回值所决定的升序降序问题

    我们在学习java基础的时候知道,基本数据类型数组可以直接调动Arrays类的静态sort方法,然后输出. 例如: int iArr[] = {1,2,4,6};  Arrays.sort(iArr) ...

  4. java 抛出异常的作用_Java 基础之异常抛出

    Java 基础之异常抛出 Java,基础,异常抛出 在 Java 里,除了对异常的捕获外,你还可以抛出异常,还可以创造异常.抛出异常的作用就是告诉你的调用者,程序出现了不正常的情况了,得不要期望的结果 ...

  5. java接口返回值_java后台调用接口并返回值

    import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import j ...

  6. Java反射修改返回值_java反射调用时如果返回值是整型数组怎么处理?

    想通过java的反射功能将javaBean转换成map: public static Map toMap(Object javaBean) { Map result = new HashMap< ...

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

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

  8. java try 返回值_JAVA的try... catch finally的return返回值问题

    下面看一个例子(例1),来讲解Java里面中try.catch.finally的处理流程 public class TryCatchFinally { @SuppressWarnings(" ...

  9. java递归函数返回值_Java基础——方法返回值递归

    原标题:Java基础--方法返回值&递归 声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. 例题:写一 ...

最新文章

  1. avpicture_fill的实现
  2. 前端三十二:超链接(a标签)
  3. 《人月神话》(P11)为舍弃而计划
  4. hdu_5878_I Count Two Three(预处理)
  5. php 安装redis数据库,Linux下安装Redis以及phpredis模块
  6. Arduino 002 --- 在Ubuntu(Linux) 中搭建Arduino开发环境
  7. LintCode 69---二叉树的层次遍历
  8. ios 从服务器获取文件,ios - 如何将远程文件(从远程SMB服务器获取)提供给某些请求 - 堆栈内存溢出...
  9. eclipse里的Maven插件安装
  10. cpu超频软件_AMD 锐龙7 3700X(默频)全面对决i7-9700K(超频至5.0GHz)
  11. [picture_scrapy] 关于美女爬虫的一个集合
  12. AM、FM、PM调制技术
  13. 闲置路由器做无线打印服务器
  14. 计算机专业毕业设计选题与方向走势
  15. 智齿徐懿 | 一个“外行”眼中的呼叫中心系统未来
  16. Android studio 简易流式布局
  17. 仪表图形怎么用c语言写,科一仪表盘图标大全
  18. 姿态估计相比Mask-RCNN提高8.2%,上海交大卢策吾团队开源AlphaPose
  19. 免费稳定的APP分发托管平台,支持应用合并、内测分发、扫码下载
  20. 监控系统 Prometheus 的说明

热门文章

  1. sas中的sql(2) 行选择 、限制重复、条件运算符、运行前语法检查、feedback、count...
  2. 如何在picture上显示透明Label
  3. 20120918-双向链表类定义《数据结构与算法分析》
  4. 块状元素、内联元素和内联块状元素
  5. 本地yum仓库和http方式的yum仓库。
  6. c# 链接mongDB集群实战开发
  7. Styled Label
  8. 路由器命令大全手册教程 4
  9. java 爬虫 保存cookies_写爬虫,免不了要研究JavaScript设置cookies的问题
  10. java2d简介_AWT_Java2D简介