- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
class Program
{
public static void Main(string[] args)
{
try
{
checkifStringNull(string check)
Clean();
}
catch(ArgumentNullException msg)
{
Console.WriteLine(msg.Message);
}
}
public static int Clean()
{
List<string> errorLog = new List<string>();
foreach (DirectoryInfo dir in directories)
{
try
{
dir.Delete(true);
}
catch(System.UnauthorizedAccessException msg)
{
code = 5;
errorLog.Add(String.Concat(dir.FullName," ", code ," ", msg.Message));
Console.WriteLine("Error Removing the directory: {0}", dir.FullName);
}
catch(System.IO.IOException msg)
{
code = 5;
errorLog.Add(String.Concat(dir.FullName," ", code ," ", msg.Message));
Console.WriteLine("Error Removing the directory: {0}", dir.FullName);
}
}
}
public static void checkifStringNull(string check)
{
if(string.IsNullOrWhiteSpace(check))
{
throw new ArgumentNullException(String.Format("String can't be null"));
}
}
我有一个方法可以删除特定路径的子目录。如果我在方法中有 try catch 可以吗?原因是我想直接访问引发异常的循环内的变量(目录),对我来说它更有条理。如果我要从方法中删除代码并将其放在 main 中,它将如下所示:
public static void Main(string[] args)
{
try
{
checkifStringNull(string check)
List<string> errorLog = new List<string>();
foreach (DirectoryInfo dir in directories)
{
try
{
dir.Delete(true);
}
catch(System.UnauthorizedAccessException msg)
{
code = 5;
errorLog.Add(String.Concat(dir.FullName," ", code ," ", msg.Message));
Console.WriteLine("Error Removing the directory: {0}", dir.FullName);
}
catch(System.IO.IOException msg)
{
code = 5;
errorLog.Add(String.Concat(dir.FullName," ", code ," ", msg.Message));
Console.WriteLine("Error Removing the directory: {0}", dir.FullName);
}
}
}
catch(ArgumentNullException msg)
{
Console.WriteLine(msg.Message);
}
}
我在另一个 try-catch 中嵌入了一个 try-catch,这被认为是不好的做法还是效率低下?
最佳答案
在方法中使用 try-catch
没有错,在另一个 try-catch
中使用 try-catch
也没有错.
唯一重要的是谁处理异常的工作。
有时您有一个方法,其唯一的工作就是尝试执行一项任务,而不是处理异常情况。该方法不应捕获异常。
有时您有一个方法,您想要处理许多甚至所有异常情况,否则不返回控制权。此方法会捕获异常,并且可能需要大量代码来执行此操作,可能带有嵌套的 try-catch
block 。
现实生活也是如此。有时您希望有人尝试给您倒杯咖啡,但如果没有成功(这个地方关门了,队伍真的很长)他们应该回来,您会处理它。其他时候,您希望他们出去喝咖啡,而不是空手而归。两者都是完全合法的;这仅取决于您想要发生什么。这完全是个案分析。
许多初学者(甚至更多!)都犯了一个错误,认为他们应该捕获所有异常并且从不抛出一个异常。这就像保姆一样,认为处理出现的任何异常情况是他们的工作。溢出的苏打水可能是正确的。但是当窗帘着火时,您可能更希望由其他人处理异常。
关于c# - 在方法中使用 `try-catch` 是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35495315/
如果您想分享更多信息,可以在这里找到整个资源 指针: https://github.com/sergiotapia/DreamInCode.Net 基本上,我的API将为其他开发人员提供
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
我不是 SCM 工具的经验丰富的用户,尽管我确信它们的用处,当然。 我在以前的工作中使用了一些不起眼的商业工具,在当前的工作中使用了 Perforce,并在我的小型个人项目中使用了 TortoiseS
所以我想知道一些我应该避免在 javascript 中做的事情以获得良好的 SEO 排名。在我的下一个站点中,我将广泛使用 jquery 和 javascript,但不想牺牲 SEO。那么您认为我应该
基本上,我想知道什么是避免 future CSS 代码出现问题和混淆的最佳方法... 像这样命名 CSS 属性: div#content ul#navigation div.float-left (真
我是一名优秀的程序员,十分优秀!