在Visual C ++代码中,我曾经写过一些宏来检查函数的返回值是否不合预期,转到Exit标签。像这样:
HRESULT hr = S_OK;
IF_FALIED_EXIT(boo());
...
Exit:
if(FAILED(hr)){ print error message }
return hr;
这是为了防止程序崩溃并始终处理异常。我的问题是,在Java中,我们建议使用这样的代码样式,还是应该在大多数情况下使用try / catch?
谢谢
答案 0 :(得分:1)
在Java中特别不鼓励这样做。请参阅Features Removed From C and C++。
在Java中,您可以执行一些类似的操作,例如,请参阅以下基本示例,该示例使用带标签的中断进行早期转义:
// a Class is handed in to create a new instance of with basic reflection
construct_and_add: if (clazz != null) {
try {
Object obj = clazz.newInstance();
} catch (Exception e) {
System.err.println("Error <" + e.getClass().getName()
+ "> in reflective instantiation: " + e.getMessage());
break construct_and_add;
}
somewhereElse.add(obj);
}