0 0

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

近日在做一个项目, 这个项目分为多个模块,包括前台tomcat,后台服务等等。 其中后台服务 是 使用spring 将调用的接口bean 发布成JMX服务。现在有一个问题,就是当某个方法执行出错的时候,是返回错误字符串?还是抛出系统异常?

是所有的方法都返回下面的固定结果?
Class Result{
    String errorString;
    Object  result;
    Boolean success;


还是出错后 抛出系统异常?
public void foo(){
  try{
  }catch(Exception e){
     throw new AppException("...");
  }
}


不知这两种方法哪种好一些?

这个问题可能有些新手了,请各位见谅。。

问题补充:
地狱牢笼 写道
抛出,记日志!


日志肯定是记的,可是为什么要抛出异常这种方式? 比另一种方式有什么好处?
2011年2月28日 16:35

4个答案 按时间排序 按投票排序

0 0

采纳的答案

看需求了,如果是客户端必须处理这种错误并且可以恢复(被检查异常),或者出错了,程序必须终止(运行时异常),那么就应该抛出异常。
返回错误码的话会减少程序的可靠性,因为调用接口的客户完全可以忽略掉这个错误码。

虽然抛出异常会有性能开销,但不至于导致性能瓶颈,所以我觉的抛出异常好点。

2011年3月02日 22:31
0 0

一般都在开发的时候抛异常. 项目上了当然是字符串了,第一开销小点 第二不要对用户太透明.
所以维护的时候都是重新错误去查log;

2011年3月01日 15:41
0 0

我觉得:框架型的抛异常,业务性的抛字符串(业务性的异常开销比较大,而且对用户来说不是很透明)。

2011年2月28日 16:59
0 0

抛出,记日志!

2011年2月28日 16:50

相关推荐

    C#编写的字符串、异常处理程序

    C#中的异常处理使用`try-catch`块,其中`try`块包含可能抛出异常的代码,`catch`块用于捕获并处理这些异常。`throw`语句用于手动抛出异常,而`finally`块(可选)用于确保在异常发生时仍需执行的清理工作。 5. **...

    Java字符串查找和提取异常处理

    // 这里应该有后续处理逻辑,例如再次尝试提取或者抛出异常 } } } ``` ### 总结 本文详细介绍了如何在Java中实现字符串查找与提取的功能,并且强调了异常处理的重要性。通过自定义异常类`MyException`,我们...

    java验证字符串是否符合json格式

    否则,如果抛出异常(如`JSONException`),说明字符串不符合JSON格式,方法返回`false`。 请注意,这种方法只能验证JSON对象,如果需要验证JSON数组,可以使用`JSONArray`类代替`JSONObject`。另外,虽然这种方法...

    [字符串]字符串提取(获取两个字符串中间的字符串)

    但是这种方法存在局限性,如果"my name"和"John Doe"不唯一或不存在,程序可能会抛出异常。因此,我们需要考虑更健壮的方法。 2. **Regular Expressions (Regex)**:C#的Regex类提供了更强大、更灵活的字符串匹配和...

    抛出异常的事例

    如果`toantitone`方法抛出异常,`main`方法中的`catch`块会捕获它,并通过`e.printStackTrace()`打印堆栈跟踪,帮助调试。`finally`块确保无论是否发生异常,都会执行一段代码(在这里是打印"over")。 `toantitone...

    将字符串转会为十六进制

    2. **异常处理**:对于非十六进制字符,需设计合理的错误处理机制,如跳过、替换或抛出异常。 3. **性能优化**:在处理大量数据时,考虑使用更高效的数据结构和算法,如利用查找表加速字符到十六进制值的转换。 ...

    关于字符串相等的比较

    - 缺点:如果其中一个字符串为 `null`,则会抛出 `NullPointerException`。 2. **使用 `equalsIgnoreCase` 方法:** - 此方法用于忽略大小写的情况下比较两个字符串。 - 示例:`s.equalsIgnoreCase(s2)`。 - ...

    JAVA日期与字符串的转换

    这里需要注意的是,由于`SimpleDateFormat`的`parse`方法可能会抛出异常,因此在调用该方法时需要捕获异常。 ```java import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date...

    java字符串实验题目

    在处理字符串相关的问题时,可能会遇到各种异常,如`NullPointerException`(当试图访问空引用时抛出)、`StringIndexOutOfBoundsException`(当索引超出字符串边界时抛出)。对于这些异常,Java提供了try-catch语句...

    字符串转日期

    2. **`java.text.ParseException`**: 当`SimpleDateFormat`无法正确解析日期字符串时抛出的异常。 3. **`java.util.Date`**: Java中的基本日期表示类,用于表示特定的瞬间,精确到毫秒。 #### 三、代码示例分析 ...

    JSON字符串校验

    这个过程是必要的,因为如果JSON字符串存在语法错误,那么在尝试解析或处理这些数据时,程序可能会抛出异常或无法正确执行。 描述中提到的“使用此工具可以校验你的JSON字符串是否合法,错误在什么地方”是指存在一...

    C#优化字符串操作

    - `Convert.ToInt32`方法在处理无法转换的字符串(如`null`)时,不会抛出异常,而是返回0。这可能导致潜在的逻辑错误,因为0可能是一个有效的整数值。 - `Int32.Parse`方法在遇到无法转换的字符串时,会抛出`...

    字符串封装

    8. **错误处理**:在封装过程中,应考虑异常安全性和错误处理,比如当操作失败时抛出异常或返回错误代码。 9. **线程安全**:如果在多线程环境中使用,还需要确保封装的字符串操作是线程安全的。 10. **迭代器支持...

    oracle通过sql实现字符串转数字oracle函数

    然而,如果字符串中包含非数字字符,`TO_NUMBER()`函数可能会抛出`NUMERIC OR VALUE ERROR`异常。为了解决这个问题,可以使用`TRY_TO_NUMBER()`函数(Oracle 12c及以上版本),它在转换失败时返回NULL而不是引发错误...

    字符串查找替换(超经典)

    如果未找到,则返回特定的负值或抛出异常。 替换操作则涉及将字符串中的某个或某些特定子字符串替换成另一个字符串。在Python中,可以使用`str.replace()`方法;在Java中,可以使用`String.replace()`或`String....

    python的字符串内建函数方法

    `find()`找不到时返回-1,而`index()`找不到时会抛出异常。 `isalnum()`, `isalpha()`, `isdecimal()`, `isdigit()`, `islower()`, `isnumeric()`, `isspace()`, `istitle()`, `isupper()`是一系列用于检查字符串...

    Delphi 计算字符串表达式

    - 如果遇到非法字符,则抛出异常。 4. **更新结果** - 根据当前运算符 `PX` 更新 `Result` 的值。 5. **迭代** - 循环直到处理完整个表达式。 ### 特性与限制 该函数具备以下特点: - 支持基础的算术运算。 - ...

    字符串截取小例子Delphi源代码..rar

    例如,当StartIndex小于1或大于字符串长度时,应抛出异常或返回空字符串。 9. **内存管理**:由于`string`是动态类型,所以不需要手动释放内存。但如果你创建了自定义的字符串类或者使用了`AnsiString`等其他字符串...

    vc++识别字符串中的时间

    - 在解析过程中,可能会遇到无效的日期和时间格式,因此需要良好的错误处理机制,比如抛出异常或返回错误代码。 5. **用户界面**: - 如果这是一个独立的应用程序,那么可能需要一个用户界面来输入待解析的字符串...

    C/C++ 字符串转化成数字,支持任意进制

    这可能包括抛出异常,返回特殊值或设置错误标志。 5. **Demo.cpp 和 parsenumber.h 文件**: - `Demo.cpp`很可能包含了实现进制转换功能的主程序,可能包含测试用例,用于展示如何使用自定义的转换函数。 - `...

Global site tag (gtag.js) - Google Analytics