在这一章,我们将讨论异常和错误处理。当 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行有一个未处理的异常抛出。
所有这些异常信息对开发人员将非常有用。事实上,我们可能只希望当开发人员运行应用程序时才显示这些异常信息。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# ASP.NET
# Core
# 异常处理
# .NET 8新预览版使用 Blazor 组件进行服务器端呈现(项目体验)
# 国产化中的 .NET Core 操作达梦数据库DM8的两种方式(操作详解)
# 解决Win10无法安装.Net Framework 3.5提示错误代码0x800F081F
# win8/8.1系统安装.net framework 3.5出现0x800F0906代码错误的解决方
# ASP.NET MVC5+EF6+EasyUI 后台管理系统(81)-数据筛选(万能查询)实例
# ASP.NET 程序员都非常有用的85个工具
# 无法启动.NET Framework NGEN v4.0.30319_X86服务的解决方法
# .NET8 依赖注入
# 让我们
# 应用程序
# 抛出
# 您将
# 开发人员
# 您的
# 给你
# 也会
# 将会
# 在这
# 很有
# 您可以
# 转到
# 只会
# 下一
# 可以看到
# 来看看
# 然后再
# 并对
# 所示
相关文章:
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
模具网站制作流程,如何找模具客户?
c++ stringstream用法详解_c++字符串与数字转换利器
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
表情包在线制作网站免费,表情包怎么弄?
广州建站公司哪家好?十大优质服务商推荐
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
如何使用Golang table-driven基准测试_多组数据测量函数效率
实现点击下箭头变上箭头来回切换的两种方法【推荐】
制作农业网站的软件,比较好的农业网站推荐一下?
建站之星安装失败:服务器环境不兼容?
linux top下的 minerd 木马清除方法
ppt制作免费网站有哪些,ppt模板免费下载网站?
Java解压缩zip - 解压缩多个文件或文件夹实例
如何零基础在云服务器搭建WordPress站点?
如何用免费手机建站系统零基础打造专业网站?
建站之家VIP精选网站模板与SEO优化教程整合指南
如何破解联通资金短缺导致的基站建设难题?
建站之星导航如何优化提升用户体验?
开源网站制作软件,开源网站什么意思?
建站主机选哪种环境更利于SEO优化?
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
如何在Windows 2008云服务器安全搭建网站?
建站主机与服务器功能差异如何区分?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
如何零基础开发自助建站系统?完整教程解析
建站之星多图banner生成与模板自定义指南
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
建站主机类型有哪些?如何正确选型
建站之星如何配置系统实现高效建站?
如何快速生成专业多端适配建站电话?
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
如何在阿里云服务器自主搭建网站?
如何用好域名打造高点击率的自主建站?
详解jQuery停止动画——stop()方法的使用
网站制作知乎推荐,想做自己的网站用什么工具比较好?
高端企业智能建站程序:SEO优化与响应式模板定制开发
如何在腾讯云免费申请建站?
如何在服务器上配置二级域名建站?
建站之星后台密码遗忘或太弱?如何重置与强化?
网站制作说明怎么写,简述网页设计的流程并说明原因?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
定制建站流程解析:需求评估与SEO优化功能开发指南
c# Task.ConfigureAwait(true) 在什么场景下是必须的
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
公众号网站制作网页,微信公众号怎么制作?
*请认真填写需求信息,我们会在24小时内与您取得联系。