【问题标题】:UnauthorizedAccessException can't be caught无法捕获 UnauthorizedAccessException
【发布时间】:2016-05-30 07:41:42
【问题描述】:

我最近遇到了这个问题,没有意义。

以下sn-p是真实的:

 try
  {
    File.Create(targetFile);
    //File.WriteAllText(targetFile, $"test {DateTime.Now.ToString()}");
  }
  catch (UnauthorizedAccessException uaex)
  {
  }

我已经一步一步地检查了它,一旦我使用调试器进入“File.Create()”方法,异常就会上升,并且它不会进入 catch 块,而且,如果我删除try-catch,它不会冒泡到调用包含 this 的方法。

有人知道为什么 try-catch 和冒泡不起作用吗?

ps。我试图创建文件的位置是故意写保护的,这只是一种检查它是否是的方法。

【问题讨论】:

  • 你在程序哪里有这段代码?
  • 这是一个相当复杂的项目,这个方法是在应用启动时从后台线程调用的
  • 我只是给你一个选择,检查目录是否只写保护,你可以在那个链接上查看解决方案:stackoverflow.com/questions/7511592/…
  • @Excalibrus 我认为这并不适用于对目录具有不同权限的所有用户。
  • @LasseV.Karlsen 我制作了一个测试应用程序,我尝试在其中“混淆”一些在主线程上运行任务的BackgroundWorkers,这些任务创建后台线程来运行我发布的相同的try-catch。而且我似乎无法用多线程或 1 个线程重新创建问题。

标签: c# wpf exception


【解决方案1】:

我错了。

这个异常实际上是被捕获的,如果你在catch块里放了任何东西,它就会执行。

公平地说,调试器在调用方法时显示异常弹出窗口让我感到困惑,但通过重新启动 IDE 解决了这个问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 2012-08-08
    • 2012-11-09
    • 2011-03-14
    • 2012-03-15
    • 2014-11-25
    • 2018-11-20
    相关资源
    最近更新 更多