Tag: exception处理

MVC HttpRequestValidationExceptionexception

我正在编写一个MVC 5互联网应用程序,并对HttpRequestValidationExceptionexception有疑问。 我之前在我的控制器中的代码如下: protected override void OnException(ExceptionContext filterContext) { // Make use of the exception later this.Session[“ErrorException”] = filterContext.Exception; if (filterContext.Exception is HttpRequestValidationException) { TempData[“UITitle”] = “Validation”; TempData[“UIHeading”] = customErrorType; TempData[“UIMessage”] = filterContext.Exception.Message; TempData[“UIException”] = filterContext.Exception; filterContext.ExceptionHandled = true; } else { TempData[“UITitle”] = “Error”; TempData[“UIHeading”] = customErrorType; TempData[“UIMessage”] = filterContext.Exception.Message; TempData[“UIException”] = filterContext.Exception; } […]

为什么ASP.NET MVC 3exception被“处理”两次?

我已经使用下面的代码实现了exception处理。[编辑开始]我不知道它为什么两次调用视图。 [已编辑完成] Basecontroller public class BaseController : Controller { protected override void OnException(ExceptionContext filterContext) { if (filterContext.HttpContext.IsCustomErrorEnabled) { filterContext.ExceptionHandled = true; if (filterContext.Exception.GetType() == typeof(ArgumentOutOfRangeException)) { this.View(“OutOfRange”).ExecuteResult(this.ControllerContext); } else { this.View(“Error”).ExecuteResult(this.ControllerContext); } } base.OnException(filterContext); } } HomeController的 public class HomeController : BaseController { public ActionResult Exception2() { throw (new ArgumentOutOfRangeException()); } public ActionResult Exception3() { […]

如何处理linq中引发的exception

gyus! 假设我有这么简单的LINQ表达式 IEnumerable res = from rqResult in MatchesList select new StopListMatchViewModel ( ) { MatchDate = DateTime.ParseExact(rqResult.Row[“MatchDate”].ToString(), “dd.MM.yyyy HH:m:ss”, fmtInfo), Remark = rqResult.Row[“Remark”].ToString() } 如果无法根据指定的格式掩码解析字符串 – 我得到FormatException。 在调试器中,我可以在变量“res”的结果视图中了解它。 实时我得到空集合。 在执行LINQ期间可能会发生许多不同exception的例子。 我怎么能抓住并处理它们? 尝试catch块在这里不起作用,因为exception在我看来不会被提出。

什么是处理exception以及如何在asp.net中处理它们的最佳方法

首先,我已经熟悉了简单的exception处理语法,但我要问的是最佳位置,最佳时间以及处理它们的最佳方法。 我正在构建一个N层应用程序。 所以我认为DAL有时会产生一些错误来处理..而我刚刚了解了SqlException类,该类的处理是什么? 我曾经看过一个处理SqlException的代码,然后它处理Exception! 在了解了实践以及我将要处理它们之后,我计划创建一个连接数据库并在数据库中记录错误的方法,以便我可以解决它,但我仍然不知道应该提供哪些信息收集让我识别整个情况! 我认为exception处理并不是什么大问题。 但我时不时地读到一些奇怪的建议 – 我从来没有理解过 – 在问题评论中却没有人能回答我,因为这是一些非常古老的问题! “不要只是明确地捕捉exception” “应用程序中更高层使用的代码必须始终只抛出exception,而不必担心如何处理它们。” 编辑 那么Page_Error事件和Application_Error ..我看到它们是处理错误的好习惯

我可以捕获特定或自定义exception吗?

我不想抓住一些例外。 我能以某种方式做到吗? 我可以这样说: catch (Exception e BUT not CustomExceptionA) { } ?

如何在C#中使用dll进行全局exception处理?

Dll在C#中没有入口点,所以我需要将代码用于全局exception处理在一个地方,因为这些dll在exe中引用并且所有都有try catch但是有一些错误导致它崩溃并识别我们正在尝试创建崩溃转储。 任何人都可以建议这样做是可行的解决方案还是其他任何必须做的事情。 谢谢。

ApplicationException还是创建自定义exception?

在我的文件存储库中,当调用InsertFile()方法时,我将抛出以下exception: 超出上载文件大小限制时 超过存储容量时 目前我只是抛出一个带有相关消息的ApplicationException : public void InsertFile(HttpPostedFile uploadedFile) { if (uploadedFile.ContentLength > FileSizeLimit) { throw new ApplicationException(“File size limit exceeded.”); } if (uploadedFile.ContentLength + FileStorageUsage > FileStorageCapacity) { throw new ApplicationException(“File storage capacity exceeded.”); } // … } 问题: 我应该在这里使用更好的exception类吗? 或者我应该通过从ApplicationException派生来创建自己的自定义exception?

DebuggerStepThrough,DebuggerHidden在async-await方法中不起作用

当您在Visual Studio调试器中打开“抛出exception时断开”function时,它会在选定的exception类型的任何位置中断。 告诉它不要在特定方法中断的方法是使用DebuggerStepThrough属性(或DebuggerHidden )来装饰这些方法 。 显然 ,由于某种原因,这对于async方法不起作用。 这是一个重现问题的片段。 调试器将在TestAsync内部TestAsync即使它标记了属性,并且它不会在Test作为例外(它们之间的唯一区别是第一个用async关键字标记): public class Attributes { public async Task Run() { await TestAsync(); await Test(); } [DebuggerHidden] [DebuggerStepThrough] public async Task TestAsync() { try { throw new Exception(“Async”); } catch { } await Task.Delay(100); } [DebuggerHidden] [DebuggerStepThrough] public Task Test() { try { throw new Exception(“sync”); } catch […]

如何在不传递变量的情况下获取当前exception?

我正在寻找一种方法来检索当前的exception,而不必将其作为变量传递。 假设以下代码 public void MakeItFail() { try { throw new FailException(); } catch // Yes I’m aware that this shouldn’t be done, but I don’t want to go through all the code base and change it { ShowMessage(“An error occured”); } } public void ShowMessage(string message) { // How can I retrieve the exception here […]

通过Web服务正确捕获特定exception

我目前在客户端程序中使用C#.NET服务。 作为服务器设计的一部分,抛出了几个自定义exception以指示特定错误(如在任何普通桌面程序中)。 问题是Web Service捕获这些错误并将它们序列化为FaultException,并在Message字段中写入实际exception(如NoRoomsAvailableException)。 我的问题是,是否有处理这些错误的最佳做法。 我们刚刚开始研究这个问题,我们可能会做一些文本模式匹配来提取exception类型和错误消息,但这似乎是一种hacky方式,所以任何“干净”的做法都会很多赞赏。