gpt4 book ai didi

c# - 一系列调用中的C#错误处理

转载 作者:行者123 更新时间:2023-12-03 08:12:09 24 4
gpt4 key购买 nike

因此,对于Err处理来说是全新的,但要理解。

对于单个过程,我有这个:

try
{
myGetDataFunction();
}catch(SqlException ex){
myLogExceptionRoutine();
}catch{
throw;
}

下一步是查看有多个顺序调用的情况。
例如。
public void foo(){
callA();
callB();
}

如果callA失败,我不希望callB被调用。
问题是,我是将A和B都包装在一个try/catch中,还是将每个单独的try/catch包裹起来?
..除此之外,我试图了解所有内容的“原因”。

这样吗?
try{
callA();
callB();
}catch{
// handling stuff
}

还是像这个看起来不正确的奇怪的伪代码?
try{
callA();
}catch{
// handle error
}
if(somevalidityCheck){
try{
callB();
}catch{
// handle error
}
}

最佳答案

try块中发生异常时,其余try块将被跳过,因此您的代码

try
{
callA();
callB();
}
catch{}

如果 callB引发异常,则不会执行 callA。将其分为两个 try-catch块的唯一原因是,如果您需要以不同的方式处理异常,那么在这种情况下,您可以嵌套这些块以保持 callB抛出时跳过的 callA的行为。
try
{
callA();
try
{
callB();
}
catch
{
Debug.Log("callB raised exception");
}
}
catch
{
Debug.Log("callA raised exception and callB was not executed");
}

关于c# - 一系列调用中的C#错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36498850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com