- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 Controller 操作中,我捕获了一个异常并在冒泡到 Application_Error() 方法之前添加了一些额外的信息
ActionResult Index()
{
try
{
var i = 1 / 0;
}
catch(Exception e)
{
throw new Exception("My new Exception!", e)
}
}
private void Application_Error(object sender, EventArgs e)
{
// Breakpoint shows original error! Not my newly thrown one!
var exception = Server.GetLastError().GetBaseException();
}
最佳答案
快速浏览 Exception.GetBaseException Method 的文档清除一切:
A chain of exceptions consists of a set of exceptions such that each exception in the chain was thrown as a direct result of the exception referenced in its
InnerException
property. For a given chain, there can be exactly one exception that is the root cause of all other exceptions in the chain. This exception is called the base exception and itsInnerException
property always contains a null reference.
您将原始Exception
设置为抛出的Exception
的InnerException
,因此原始Exception
是“基础异常”。
如果您想查看链中最近的 Exception
,也许您不应该调用 GetBaseException
?
关于c# - 抛出新异常未被 Server.GetLastError() 捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44170899/
处理 Application_Error 中的错误时,我应该使用这两个中的哪一个? 我正在为两者找到多个示例,但不清楚一个是否比另一个更好。是否存在只有一个会显示正确错误的情况? 另外,我怀疑这很重要
不久前,我为 Windows API 函数编写了一个简单的包装器类。我编写了一组单元测试来验证该类生成的结果与直接调用 API 相匹配。 最近我回去添加了关于跨不同线程使用包装器类的单元测试。我发现
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
我有一个函数,它为每种情况返回不同的 DWORD 值,如果出现错误。所以我有以下定义: #define ERR_NO_DB_CONNECTION 0x90000 #define ERR_DB_N
德尔福 Xe。 在delphi帮助中:“...调用此函数通常会重置操作系统错误状态...” 如何将当前错误重置为 0? IE。 GetLastError=0 示例: Try // There is a
在调用像 ExtractShortPathName 这样的 Windows API 函数包装器后使用 GetLastError 时,我注意到 GetLastError 返回一个非零错误代码,无论是否对
我正在尝试编写一些函数来创建仅用于使用剪贴板的 Windows 消息窗口。我知道创建窗口失败,但是当我添加 GetLastError() 函数调用时,该函数永远不会返回到 Java。这使得调试变得很棘
这非常类似于: Turning GetLastError() into an exception 我还希望能够将 std::string 添加到错误中: class Win32Exception
下面是一个创建线程的简单程序。我希望我遗漏了一些明显的东西。仅供引用 - 我是 Win32 的新手。 为什么线程执行中的GetLastError()返回87(ERROR_INVALID_PARAMET
我有一个函数可以将 GetLastError 函数转换为字符串以在我的项目中使用。但在部署之前,我需要在示例程序中进行测试。当我测试它时,它没有给我任何错误,因为示例程序没有任何错误。 谁能帮我如何在
在此示例中,dwerror 是 10045L。但此代码返回 0x13d 值作为错误。如何获取格式消息?请看一下。 TCHAR lpMsgBuf[512]; if(!FormatMessage(
我有一个可以打开很多窗口的应用程序。有时,我得到 wglCreateContext() 返回 0 而 GetLastError() 返回 0xc007001f。 它只发生在 Intel 显卡上。 有人
我知道 GetLastError 会在发生错误时立即调用。我写了函数: void PrintErrorMsg() { DWORD errCode = GetLastError(); L
为什么 QT 应用程序中的最后一个错误始终为零? SetLastError(23); qDebug() << "LastError: " << GetLastError(); 预期输出:最后一个错误:
假设我正在使用 APC,其中过程和调用代码都使用 SetLastError 和 GetLastError。这会导致 GetLastError 产生不可预测的值。有什么办法可以解决这个问题吗? VOID
我有一个 Visual Studio 2008 C++ 项目,它在出现异常 错误时使用 Win32Exception 类。 Win32Exception 类如下所示: /// defines an e
假设 GetLastError(和变体)是每线程还是每进程是否正确?如果它是每个进程的问题在多线程应用程序中有些明显,因为无法保证在失败的调用和 GetLastError 之间没有进行其他 Win32
为什么是RegCreateKeyEx()返回 LONG ,而不是设置 DWORD错误代码来自 SetLastError() ? 转换它的 LONG 对我来说安全吗?将值返回给 DWORD然后用 Set
我如何在 php 中使用 getLastError() 检查我的保存方法是否正在插入到 mongo? 我按如下方式设置我的数据库: $this->databaseEngine = $app['mong
如果您有一个大型系统,它会自动显示一个漂亮的窗口来解释捕获的异常,那么能够将错误代码与消息一起显示(以供进一步调查)会很好。但是由于某些函数调用是针对设置错误代码的失败 Windows 函数,而有些是
我是一名优秀的程序员,十分优秀!