java 抛出异常 返回值_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
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通过抛异常来返回提示信息相关推荐
- java 函数参数 返回值_java中如何用函数返回值作为post提交的参数?
1.我想实现的功能是在java程序中导入HttpURLConnection类,然后将函数的值作为post方法要提交的参数,最后显示在显示台上. 2.要用到的函数是自己写的可以显示实时计算机cpu.内存 ...
- java run() 返回值_java线程的run()没有返回值怎么办?
用线程Thread执行一些方法后,需要判断执行是否成功. public void run() {} run( ) 方法返回值是空, 怎么办? 解决方法: Note 使用 call() 方法 Calla ...
- java compareto 返回值_Java comparable接口及compareTo返回值所决定的升序降序问题
我们在学习java基础的时候知道,基本数据类型数组可以直接调动Arrays类的静态sort方法,然后输出. 例如: int iArr[] = {1,2,4,6}; Arrays.sort(iArr) ...
- java 抛出异常的作用_Java 基础之异常抛出
Java 基础之异常抛出 Java,基础,异常抛出 在 Java 里,除了对异常的捕获外,你还可以抛出异常,还可以创造异常.抛出异常的作用就是告诉你的调用者,程序出现了不正常的情况了,得不要期望的结果 ...
- java接口返回值_java后台调用接口并返回值
import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import j ...
- Java反射修改返回值_java反射调用时如果返回值是整型数组怎么处理?
想通过java的反射功能将javaBean转换成map: public static Map toMap(Object javaBean) { Map result = new HashMap< ...
- 关于接口使用抛异常还是返回错误码,下列哪些说法符合《阿里巴巴Java开发手册》
关于接口使用抛异常还是返回错误码,下列哪些说法符合<阿里巴巴Java开发手册>:答案在文末 A. 向公司外部提供的http/api接口,推荐使用"错误码"方式返回异常或 ...
- java try 返回值_JAVA的try... catch finally的return返回值问题
下面看一个例子(例1),来讲解Java里面中try.catch.finally的处理流程 public class TryCatchFinally { @SuppressWarnings(" ...
- java递归函数返回值_Java基础——方法返回值递归
原标题:Java基础--方法返回值&递归 声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. 例题:写一 ...
最新文章
- avpicture_fill的实现
- 前端三十二:超链接(a标签)
- 《人月神话》(P11)为舍弃而计划
- hdu_5878_I Count Two Three(预处理)
- php 安装redis数据库,Linux下安装Redis以及phpredis模块
- Arduino 002 --- 在Ubuntu(Linux) 中搭建Arduino开发环境
- LintCode 69---二叉树的层次遍历
- ios 从服务器获取文件,ios - 如何将远程文件(从远程SMB服务器获取)提供给某些请求 - 堆栈内存溢出...
- eclipse里的Maven插件安装
- cpu超频软件_AMD 锐龙7 3700X(默频)全面对决i7-9700K(超频至5.0GHz)
- [picture_scrapy] 关于美女爬虫的一个集合
- AM、FM、PM调制技术
- 闲置路由器做无线打印服务器
- 计算机专业毕业设计选题与方向走势
- 智齿徐懿 | 一个“外行”眼中的呼叫中心系统未来
- Android studio 简易流式布局
- 仪表图形怎么用c语言写,科一仪表盘图标大全
- 姿态估计相比Mask-RCNN提高8.2%,上海交大卢策吾团队开源AlphaPose
- 免费稳定的APP分发托管平台,支持应用合并、内测分发、扫码下载
- 监控系统 Prometheus 的说明
热门文章
- sas中的sql(2) 行选择 、限制重复、条件运算符、运行前语法检查、feedback、count...
- 如何在picture上显示透明Label
- 20120918-双向链表类定义《数据结构与算法分析》
- 块状元素、内联元素和内联块状元素
- 本地yum仓库和http方式的yum仓库。
- c# 链接mongDB集群实战开发
- Styled Label
- 路由器命令大全手册教程 4
- java 爬虫 保存cookies_写爬虫,免不了要研究JavaScript设置cookies的问题
- java2d简介_AWT_Java2D简介