在Python中,有这个有用的异常处理代码:
需要将常规代码放在try块中,否则如果引发异常并随后处理,则
谢谢
try:
# Code that could raise an exception
except Exception:
# Exception handling
else:
# Code to execute if the try block DID NOT fail
我认为将有可能引发异常的代码与正常代码分开是非常有用的。在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
}
}
需要将常规代码放在try块中,否则如果引发异常并随后处理,则
newobj
将未分配,但这使得将此类大量代码放入与DataPortalException
无关的try块中感觉非常不自然。该怎么办呢?谢谢