ASP.NET Core异常和错误处理(8)
发布时间 - 2026-01-11 01:54:44 点击率:次在这一章,我们将讨论异常和错误处理。当 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 依赖注入
# 让我们
# 应用程序
# 抛出
# 您将
# 开发人员
# 您的
# 给你
# 也会
# 将会
# 在这
# 很有
# 您可以
# 转到
# 只会
# 下一
# 可以看到
# 来看看
# 然后再
# 并对
# 所示
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在 React 中条件性地遍历数组并渲染元素
Laravel模型事件有哪些_Laravel Model Event生命周期详解
如何快速生成橙子建站落地页链接?
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
php打包exe后无法访问网络共享_共享权限设置方法【教程】
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
*服务器网站为何频现安全漏洞?
html如何与html链接_实现多个HTML页面互相链接【互相】
Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】
JavaScript中的标签模板是什么_它如何扩展字符串功能
网站建设保证美观性,需要考虑的几点问题!
如何实现建站之星域名转发设置?
如何用狗爹虚拟主机快速搭建网站?
JavaScript模板引擎Template.js使用详解
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】
悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
canvas 画布在主流浏览器中的尺寸限制详细介绍
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
图册素材网站设计制作软件,图册的导出方式有几种?
如何快速生成可下载的建站源码工具?
如何在万网利用已有域名快速建站?
Android仿QQ列表左滑删除操作
Laravel如何生成URL和重定向?(路由助手函数)
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
详解CentOS6.5 安装 MySQL5.1.71的方法
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
Linux系统运维自动化项目教程_Ansible批量管理实战
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
如何为不同团队 ID 动态生成多个“认领值班”按钮
edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】
怎么用AI帮你为初创公司进行市场定位分析?
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
Laravel怎么实现验证码(Captcha)功能
如何用搬瓦工VPS快速搭建个人网站?
长沙企业网站制作哪家好,长沙水业集团官方网站?

