gpt4 book ai didi

c# - 仅出于内部函数中异常报告的目的包含参数

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

CreateDocument(string templatePath)
{
Document doc = OpenDocument(templatePath);
Picture pic = GetLogo();
AddLogo(doc, pic, templatePath);
}

AddLogo(Document doc, Picture logo, string templatePath)
{
Picture placeholder = doc.FindLogoPlaceholder();
if (placeholder.Size != logo.Size)
{
throw new ApplicationException(
String.Format("Invalid template {0}, logo size: {1}, required: {2}",
templatePath, placeholder.Size, logo.Size
));
}
}

将上面的代码视为我刚刚编写的示例。

请注意,将 templatePath 传递到 AddLogo 方法的唯一原因是为了促进异常生成。

今天我的代码中有一些东西需要这样做,我觉得它有一种非常难闻的代码味道。但我对异常处理模式不太熟悉,而且我真的看不出有什么更好的方法来做到这一点。

我想知道您的想法是什么,是否有更好的模式来处理这种情况。

最佳答案

在更高层次上创建异常:

CreateDocument(string templatePath)
{
Document doc = OpenDocument(templatePath);
Picture pic = GetLogo();
try {
AddLogo(doc, pic);
} catch (InvalidLogoSize e) {
throw new ApplicationException(
String.Format("Invalid template {0}, logo size: {1}, required: {2}",
templatePath, e.pSize, e.lSize
));
}
}

AddLogo(Document doc, Picture logo)
{
Picture placeholder = doc.FindLogoPlaceholder();
if (placeholder.Size != logo.Size)
{
throw new InvalidLogoSizeException(placeholder.Size, logo.Size);
}
}

关于c# - 仅出于内部函数中异常报告的目的包含参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4193826/

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