设计方法错误代码的最佳做法是什么?

what's the best practice to design an error code of a method?

由于本人实际编程经验不多,不知道如何设计method/function的错误码。例如,在java中有一个方法-string foo(int arg1, string arg2),方法return一个可以为空的字符串,很难找到一个特殊的字符串作为错误代码,如果该方法可以 return 任何上下文的字符串。如果方法是RPC方法,就不可能用exception来处理error。那么在这种情况下,设计方法的错误代码的最佳实践是什么?

首先,如果是错误,使用Exception,对于a/0等意外的使用RuntimeException,否则检查异常。

其次,您可以使用 包装器。例如,

class SomeWrapper{
    boolean isSuccess;
    String value;
}

那么方法可以SomeWrapper foo(...)

因为你不能使用异常,在 C++ 中,你可以 boost::optional

那么你的方法就变成了:

boost::optional<std::string> foo(int arg1, std::string arg2);