相关疑难解决方法(0)

C#:python try/catch/else块的等价物

在Python中,有一个有用的异常处理代码:

try:
    # Code that could raise an exception
except Exception:
    # Exception handling
else:
    # Code to execute if the try block DID NOT fail
Run Code Online (Sandbox Code Playgroud)

我认为能够将可能引发的代码与普通代码分开是很有用的.在Python中,这可能如上所示,但是我在C#中找不到类似的东西.

假设该特征或类似特征不存在,将标准代码放入try块中或块之后是标准做法catch吗?

我问的原因是因为我有以下代码:

if (!IsReadOnly)
{
    T newobj;
    try
    {
        newobj = DataPortal.Update<T>(this);

        List<string> keys = new List<string>(BasicProperties.Keys);
        foreach (string key in keys)
        {
            BasicProperties[key] = newobj.BasicProperties[key];
        }
    }
    catch (DataPortalException)
    {
        // TODO: Implement DataPortal.Update<T>() recovery mechanism
    }
}
Run Code Online (Sandbox Code Playgroud)

这需要普通代码在try块中,否则如果引发异常并随后处理,newobj则会被取消分配,但是在try块中有这么多代码并且与之无关,这感觉非常不自然DataPortalException.该怎么办?

谢谢

c# python exception try-catch

7
推荐指数
3
解决办法
3485
查看次数

标签 统计

c# ×1

exception ×1

python ×1

try-catch ×1