有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    唯一的区别是Java有一些已检查的异常,但C#没有

    由于您要移植的代码最初是用Java编写的,并且假设它具有正确的异常处理(这一点应该与语言无关),因此只需在Java代码捕获异常的同一位置捕获C#代码中的异常


    在没有签名级例外条款的情况下,本标准适用。NET向API用户传达可能的异常的实践是简单地记录它们。您可以在部件文档和web文档(如果适用)中记录它们