gpt4 book ai didi

c# - 如果子对象和父对象都抛出异常,如何获得两个异常

转载 作者:太空宇宙 更新时间:2023-11-03 23:09:44 24 4
gpt4 key购买 nike

在C#中,如果子对象有try catch代码块,父对象也有try catch代码块,如果子对象抛出异常,如何获取这两个异常的详细信息?

这是异常类:

public class CompileObjectException : InvalidOperationException
{
private ICustomObject _ownerCustomObject { get; set; }
public ICustomObject OwnerCustomObject
{
get
{
return _ownerCustomObject;
}
set
{
_ownerCustomObject = value;
}
}
public CompileObjectException()
{

}
public CompileObjectException(ICustomObject ownerCustomObject, string message)
: base(message)
{
_ownerCustomObject = ownerCustomObject;
}
}

当两个对象都抛出 CompileObjectException 时,OwnerCustomObject 被设置为抛出异常的对象。

在上面的代码中,我想获取父对象和子对象的 OwnerCustomObject

最佳答案

通常,父对象会在 InnerException 中抛出子异常。 InnerExceptions 可以有 InnerExceptions,因此您可以一直深入到根本原因。

编辑:

模式看起来像:

void SomeMethod()
{
try
{
}
catch (Exception e)
{
throw new MyException(message, e);
}
}

class MyException : Exception
{
public MyException(string message, Exception inner)
: base(message, inner)
{
}
}

显然还有其他详细信息,但这就是您返回两者的方式。

关于c# - 如果子对象和父对象都抛出异常,如何获得两个异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39781150/

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