我正在为一家公司编写实用程序API,我考虑的是,不是将实用程序方法抛出异常,而是通过引用将自定义的空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编码约定?
绝对是非惯用的Java;但是您的代码无法正常工作的主要原因是Java仅按值传递-没有C ++样式的引用,没有OUT参数。
编辑:哦,等等,您本身在代码中不使用引用-忽略它。但是,我敦促您不要使用可选的error参数,因为您将强制API客户端检查所有调用的返回代码,而不是在catch / finally块中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句