c#中的异常处理。NET与Java
我正在将我为Java编写的库移植到。NET C#和我正在处理两个世界之间异常处理的差异
特别是我有一个abstract
类,我用它作为基类来实现几个服务。在本课程中,我有以下方法:
public void MyConcreteMethod(){
//...
try {
initialize();
} catch(InitializationException ex){
// ...
}
// ...
}
public abstract void initialize() throws InitializationException;
每个扩展类都必须实现到initialize
的方法,我清楚地知道我需要处理一些可能的InitializationException
在C#中,我将代码转换为:
public void MyConcreteMethod(){
//...
Initialize();
// ...
}
public abstract void Initialize();
但这样一来,我对可能出现的初始化问题并没有一个明确的信息:在某些类中,我可以抛出异常,而在其他类中,我不能
那么我应该把它们放在{Exception
# 1 楼答案
唯一的区别是Java有一些已检查的异常,但C#没有
由于您要移植的代码最初是用Java编写的,并且假设它具有正确的异常处理(这一点应该与语言无关),因此只需在Java代码捕获异常的同一位置捕获C#代码中的异常强>
在没有签名级例外条款的情况下,本标准适用。NET向API用户传达可能的异常的实践是简单地记录它们。您可以在部件文档和web文档(如果适用)中记录它们