这篇文章主要为大家详细介绍了ASP.NET Core异常和错误处理的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

在这一章,我们将讨论异常和错误处理。当 ASP.NET Core应用程序中发生错误时,您可以以各种不同的方式来处理。让我们来看看通过添加一个中间件来处理异常情况,这个中间件将帮助我们处理错误。

要模拟出错,让我们转到应用程序,运行,如果我们只是抛出异常的话,看看程序是如何运转转的。

using Microsoft.AspNet.Builder; using Microsoft.AspNet.Hosting; using Microsoft.AspNet.Http; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Configuration; namespace FirstAppDemo {  public class Startup {   public Startup() {    var builder = new ConfigurationBuilder()    .AddJsonFile("AppSettings.json");    Configuration = builder.Build();   }   public IConfiguration Configuration { get; set; }      // This method gets called by the runtime.   // Use this method to add services to the container.   // For more information on how to configure your application,   // visit http://go.microsoft.com/fwlink/?LinkID=398940   public void ConfigureServices(IServiceCollection services) {   }     // This method gets called by the runtime.   // Use this method to configure the HTTP request pipeline.  public void Configure(IApplicationBuilder app) {    app.UseIISPlatformHandler();    app.UseRuntimeInfoPage();       app.Run(async (context) => {    throw new System.Exception("Throw Exception");    var msg = Configuration["message"];    await context.Response.WriteAsync(msg);    });   }      // Entry point for the application.   public static void Main(string[] args) => WebApplication.Run<Startup>(args);  } }

它只会抛出一个非常通用的异常信息。保存Startup.cs页面并运行您的应用程序。

您将看到我们未能加载此资源。出现了一个 HTTP 500 错误,内部服务器错误,那个页面不是很有帮助。它可能很方便得到一些异常信息。

让我们添加另一个中间件 UseDeveloperExceptionPage。

// This method gets called by the runtime. // Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app) {  app.UseIISPlatformHandler();  app.UseDeveloperExceptionPage();  app.UseRuntimeInfoPage();   app.Run(async (context) => {   throw new System.Exception("Throw Exception");   var msg = Configuration["message"];   await context.Response.WriteAsync(msg);  }); }

这个中间件与其他的有点不同,其他中间件通常监听传入的请求并对请求做一些响应。

UseDeveloperExceptionPage不会如此在意传入的请求在之后的管道会发生什么。

它只是调用下一个中间件,然后再等待,看看管道中是否会出现异常,如果有异常,这块中间件会给你一个关于该异常的错误页面。

现在让我们再次运行应用程序。将会产生一个如下面的屏幕截图所示的输出。

现在如果程序中出现异常,您将在页面中看到一些想要看到的异常信息。你也会得到一个堆栈跟踪:这里可以看到Startup.cs第37行有一个未处理的异常抛出。

所有这些异常信息对开发人员将非常有用。事实上,我们可能只希望当开发人员运行应用程序时才显示这些异常信息。

更多相关文章

  1. ASP.NET Core中间件设置教程(7)_实用技巧
  2. (C++)错误的map删除操作和STL中容器的迭代器的底层实现机制
  3. C++笔试题之实现简单记录错误功能
  4. .net的错误处理机制是什么
  5. .net中的错误处理机制是什么?
  6. 关于golang中的错误处理机制的详细介绍
  7. golang中的错误处理方法
  8. golang gin框架错误处理
  9. golang中创建错误的方法

随机推荐

  1. Android单选框基本应用方式
  2. android WebView 开发指栏
  3. android教程资源 免费android深入浅出课
  4. Android 布局中如何使控件居中
  5. android小游戏 猜拳游戏设计
  6. Android最新开源框架大全
  7. Android从摄像头或相册中获取照片
  8. Android 汉字转拼音
  9. 获取android源代码
  10. android Alertdialog.Bulider简单使用