ASP.NET mvc异常处理的方法示例介绍
关于ASP.NET MVC异常处理的方法,本文旨在为需要的朋友提供详尽的参考。当面对应用程序中的异常时,我们有多种处理方式可以采纳。
一、通过常见保存异常的类处理异常
这种方式是将异常信息写入到文件中。具体的实现代码如下:
我们创建一个日志管理器类`LogManager`,它拥有一个日志文件的路径。如果文件不存在,它将创建该文件。
```csharp
public class LogManager
{
private string logFilePath = string.Empty;
public LogManager(string logFilePath)
{
this.logFilePath = logFilePath;
FileInfo file = new FileInfo(logFilePath);
if (!file.Exists)
{
file.Create().Close();
}
}
public void SaveLog(string message, DateTime writerTime)
{
string log = writerTime.ToString() + ":" + message;
StreamWriter sw = new StreamWriter(logFilePath, true);
sw.WriteLine(log);
sw.Close();
}
}
```
二、在控制器中进行异常处理
```csharp
public class ExceptionController : Controller
{
public ActionResult Index()
{
throw new Exception("我抛出异常了!");
}
protected override void OnException(ExceptionContext filterContext)
{
string filePath = Server.MapPath("~/Exception.txt");
StreamWriter sw = System.IO.File.AppendText(filePath);
sw.WriteLine(DateTime.Now.ToString() + ":" + filterContext.Exception.Message);
sw.Close();
base.OnException(filterContext);
Redirect("/");
}
}
```
三、使用过滤器进行异常处理
我们还可以通过创建自定义过滤器来处理异常。例如:
```csharp
namespace MyMVC.Controllers
{
public class ExceptionController : Controller
{
[Error]
public ActionResult Index()
{
throw new Exception("过滤器异常!");
}
}
}
public class ErrorAttribute : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{
base.OnException(filterContext); //执行默认的异常处理操作,比如显示错误页面等。同时记录异常信息到日志文件中。 string path = filterContext.HttpContext.Server.MapPath("~/Exception.txt"); StreamWriter sw = System.IO.File.AppendText(path); sw.WriteLine(DateTime.Now.ToString()+":"+filterContext.Exception.Message); sw.Close(); }
编程语言
- ASP.NET mvc异常处理的方法示例介绍
- 初探SQL语句复合主键与联合主键
- javascript数据结构之串的概念与用法分析
- 解决Vue axios post请求,后台获取不到数据的问题方
- ASP.NET中IsPostBack用法详解
- jQuery简单几行代码实现tab切换
- Node.js 中exports 和 module.exports 的区别
- php加密算法之实现可逆加密算法和解密分享
- php链式操作的实现方式分析
- WordPress中用于检索模版的相关PHP函数使用解析
- 在SQL Server中使用命令调用SSIS包的具体方法
- js日期范围初始化得到前一个月日期的方法
- vue中使用refs定位dom出现undefined的解决方法
- AngularJS ng-bind-html 指令详解及实例代码
- js使用swiper实现层叠轮播效果实例代码
- mssql2005注入方法小结