我正在为公司编写一个Utility API,我考虑到这一点,而不是实用程序方法抛出Exceptions,自定义的空Error对象通过引用传递给方法,并在异常情况下填充。
UML类图
ABCError
-code: long
-message: String
-throwable: Throwable
-ABCError()
-set(code,message,throwable) : void
-set(code,message) : void
-set(code):void
-set(message):void
-isSet() : boolean
用法:
ABCError error = new ABCError();
HttpResponse response = ABCHttpUtils.post(url,headers,parameters,error);
if(!error.isSet()){
//...
}
这是一个好主意还是坏主意,因为它破坏了Java编码约定?
答案 0 :(得分:1)
这绝对是非惯用的Java;但是你的代码无法工作的主要原因是java只是按值传递 - 没有C ++风格的引用,没有OUT参数。
编辑:哦,等等,你不会在你的代码中使用引用本身 - 忽略它。但是,我强烈建议您不要使用可选的错误参数,因为您强制API客户端检查返回代码的所有调用,而不是在catch / finally块中。