是抛出异常?还是返回错误字符串?

问题描述

近日在做一个项目, 这个项目分为多个模块,包括前台tomcat,后台服务等等。 其中后台服务 是 使用spring 将调用的接口bean 发布成JMX服务。现在有一个问题,就是当某个方法执行出错的时候,是返回错误字符串?还是抛出系统异常?是所有的方法都返回下面的固定结果?Class Result{ String errorString; Object result; Boolean success;还是出错后 抛出系统异常?public void foo(){ try{ }catch(Exception e){ throw new AppException("..."); }}不知这两种方法哪种好一些?这个问题可能有些新手了,请各位见谅。。 问题补充:地狱牢笼 写道

解决方案

看需求了,如果是客户端必须处理这种错误并且可以恢复(被检查异常),或者出错了,程序必须终止(运行时异常),那么就应该抛出异常。返回错误码的话会减少程序的可靠性,因为调用接口的客户完全可以忽略掉这个错误码。虽然抛出异常会有性能开销,但不至于导致性能瓶颈,所以我觉的抛出异常好点。
解决方案二:
一般都在开发的时候抛异常. 项目上了当然是字符串了,第一开销小点 第二不要对用户太透明. 所以维护的时候都是重新错误去查log;
解决方案三:
我觉得:框架型的抛异常,业务性的抛字符串(业务性的异常开销比较大,而且对用户来说不是很透明)。
解决方案四:
抛出,记日志!

时间: 2024-08-31 08:29:25

是抛出异常?还是返回错误字符串?的相关文章

ASP技巧:ASP返回某字符串最后出现的位置

<% dwwwStr= "<div>dwww.cn</div><div>www.dwww.cn</div>设计家园" dwwwStr= InStrRev(dwwwStr,"</div>") response.write dwwwStr %> InstrRev 描述 返回某字符串在另一个字符串中出现的从结尾计起的位置. 语法 InstrRev(string1, string2[, start[,

编写高质量代码改善C#程序的157个建议[用抛异常替代返回错误、不要在不恰当的场合下引发异常、重新引发异常时使用inner Exception]

原文:编写高质量代码改善C#程序的157个建议[用抛异常替代返回错误.不要在不恰当的场合下引发异常.重新引发异常时使用inner Exception] 前言 自从.NET出现后,关于CLR异常机制的讨论就几乎从未停止过.迄今为止,CLR异常机制让人关注最多的一点就是"效率"问题.其实,这里存在认识上的误区,因为正常控制流程下的代码运行并不会出现问题,只有引发异常时才会带来效率问题.基于这一点,很多开发者已经达成共识:不应将异常机制用于正常控制流中.达成的另一个共识是:CLR异常机制带来

C语言中返回错误信息的相关函数用法总结_C 语言

C语言strerror()函数:返回错误原因的描述字符串头文件: #include <string.h> 定义函数: char * strerror(int errnum); 函数说明:strerror()用来依参数errnum 的错误代码来查询其错误原因的描述字符串, 然后将该字符串指针返回. 返回值:返回描述错误原因的字符串指针. 范例: /* 显示错误代码0 至9 的错误原因描述 */ #include <string.h> main() { int i; for(i = 0

解决ajax回调函数返回的字符串乱码问题

  ajax回调函数,返回的字符串乱码问题很是让人痛恨,下面有个不错的解决方法,大家可以参考下 ServletActionContext.getResponse().setContentType("text/json;charset=UTF-8");//解决乱码问题,没有这句,回调函数的内容可能乱码 ServletActionContext.getResponse().getWriter().write("字符串内容");//在写入之前执行上面一句,可以解决乱码  

JavaScript搜索字符串并将搜索结果返回到字符串的方法

 本文实例讲述了JavaScript搜索字符串并将搜索结果返回到字符串的方法.分享给大家供大家参考.具体如下: javascript操作字符串带有一个match方法用于搜索字符串,如果找到指定的字符串则返回搜索字符串,如果未找到则返回null,match方法区分大小写 1 2 3 4 5 6 7 8 9 10 11 12 <!DOCTYPE html> <html> <body> <script> var str="Hello world!&quo

VLOOKUP函数返回错误值怎么办?

  VLOOKUP函数 返回错误值的原因和解决方法. 一. VLOOKUP函数基本语法 =VLOOKUP (lookup_value, table_array,col_index_num, [range_lookup]) 这个太复杂了哦,看鹅理解的VLOOKUP函数中文语法吧: =VLOOKUP(查找值,数据源,第几列,模糊查找1/精确查找0) 二. 实例说话 接下来,先看一个VLOOKUP函数的应用实例吧. 通过菜名查询库存数量. C11单元格公式如下: =VLOOKUP(B11,$B$3:$

解决Discuz! X2.0 邮件发送返回错误信息的办法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 最近在安装Discuz! X2.0时,检测邮件设置时,总是提示"邮件发送返回错误信息".(如图). 本人环境配置为: Linux 虚拟主机 服务器软件:Apache 服务器数据库:MySQL 百度一下,发现不少站长都遇上了这个问题,网上都是千篇一律的转载一篇Discuz的官方教程,但是根本无法解决"邮件发送返回错

JQuery ajax中error返回错误及一直返回error的解答_AJAX相关

进入百度搜索此问题,发现有人这么说了一句 Jquery中的Ajax的async默认是true(异步请求),如果想一个Ajax执行完后再执行另一个Ajax, 需要把async=false就可以了 于时我在ajax中进行了处理 async: false,结果发现提交正常的数据返回是正常的没有错误.  代码如下  $.ajax({ type: "POST", async: false, url:urllink, data:data, dataType:"html", su

微信公共平台-微信支付统一下单,请求prepareid返回错误

问题描述 微信支付统一下单,请求prepareid返回错误 始终是报appid和mch_id不匹配,但是查过上传xml文件,发现没有这个问题1