【C#】MVC和全局文件异常处理,不返回错误页面,但返回自定义信息

52 篇文章 1 订阅
18 篇文章 0 订阅

大家好,我是全栈小5,欢迎阅读小5的系列文章。

这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解,

特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。

温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!

目录

使用步骤

1、MVC

2、Server.ClearError()

自定义信息

.NET Framework

.NET Core

发展历程

.NET Framework 发展历程

.NET Core 发展历程

文章推荐

前端

CSharp

Sql Server


使用步骤

1、MVC

filterContext.ExceptionHandled = true;
filterContext.Result = new JsonResult() { Data = new { c = 199, m = "接口出错" }, ContentType = "application/json" };

2、Server.ClearError()

Response.ContentType = "application/json";
Response.Write("{new {c=199,m='test' );

自定义信息

.NET Framework

在 .NET Framework 中返回错误页面和自定义 Json 信息的代码示例:

using System;
using System.Web.Mvc;

namespace YourNamespace.Controllers
{
    public class ErrorController : Controller
    {
        public ActionResult Index()
        {
            // Log the error or do other necessary operations

            // Returning an error view
            return View("Error");
        }

        public JsonResult CustomErrorJson()
        {
            // Log the error or do other necessary operations

            // Returning custom error JSON
            var errorJson = new
            {
                Status = "Error",
                Message = "An error occurred. Please try again later."
                // You can add more details as needed
            };

            return Json(errorJson, JsonRequestBehavior.AllowGet);
        }
    }
}

.NET Core

在 .NET Core 中返回错误页面和自定义 Json 信息的代码示例:

using Microsoft.AspNetCore.Mvc;

namespace YourNamespace.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class ErrorController : ControllerBase
    {
        [HttpGet("/error")]
        public IActionResult Error()
        {
            // Log the error or do other necessary operations

            // Returning an error view
            return View("Error");
        }

        [HttpGet("/error/json")]
        public IActionResult CustomErrorJson()
        {
            // Log the error or do other necessary operations

            // Returning custom error JSON
            var errorJson = new
            {
                Status = "Error",
                Message = "An error occurred. Please try again later."
                // You can add more details as needed
            };

            return StatusCode(500, errorJson);
        }
    }
}

发展历程

C#目标框架的发展历程主要涉及到.NET Framework和.NET Core两个主要版本。以下是它们的发展历程以及在返回错误页面时如何自定义错误Json信息的示例代码:

.NET Framework 发展历程

  1. .NET Framework 1.0 (2002年):最初版本,用于Windows平台的应用程序开发。

  2. .NET Framework 2.0 (2005年):引入了泛型、迭代器、匿名方法等新特性。

  3. .NET Framework 3.0 (2006年):并入了Windows Presentation Foundation (WPF)、Windows Communication Foundation (WCF)、Windows Workflow Foundation (WWF)。

  4. .NET Framework 3.5 (2007年):引入LINQ、扩展方法、Lambda表达式等新特性。

  5. .NET Framework 4.0 (2010年):增加了并行编程模型、动态语言运行时等新功能。

  6. .NET Framework 4.5 (2012年):引入了异步编程模式(async/await)等特性。

.NET Core 发展历程

  1. .NET Core 1.0 (2016年):第一个跨平台版本,支持Windows、Linux、macOS。

  2. .NET Core 2.0 (2017年):增加了更多的API和功能,提高了性能。

  3. .NET Core 3.0 (2019年):引入了Windows桌面应用程序开发支持,包括WinForms、WPF等。

  4. .NET 5.0 (2020年):将.NET Core和.NET Framework合并为一个单一平台,同时继续支持跨平台开发。

  5. .NET 6.0 (2021年):引入了新的语言特性和性能改进,同时加强了对云原生和微服务的支持。

文章推荐

前端

【前端】使用javascript开发一个在线RGB颜色转换

【前端】vue3+ts+vite,el-table表格渲染记录重复情况

【前端】vue3+typescript+vite+Element-Plus搭建配置初始化项目结构

【前端】WeUI DatePicker时间组件绑定方法以及chatGPT回答

【前端】参考C站动态发红包界面,高度还原布局和交互

CSharp

【C#】使用代码实现龙年春晚扑克牌魔术(守岁共此时),代码实现篇

【C#】使用代码实现龙年春晚扑克牌魔术(守岁共此时),流程描述篇

【C#】约瑟夫原理举例2个代码实现

【C#】List泛型数据集如何循环移动,最后一位移动到第一位,以此类推

【C#】获取文本中的链接,通过正则表达式的方法获取以及优化兼容多种格式

Sql Server

【Sql Server】通过Sql语句批量处理数据,使用变量且遍历数据进行逻辑处理

【新星计划回顾】第六篇学习计划-通过自定义函数和存储过程模拟MD5数据

【新星计划回顾】第四篇学习计划-自定义函数、存储过程、随机值知识点

【Sql Server】Update中的From语句,以及常见更新操作方式

【Sql server】假设有三个字段a,b,c 以a和b分组,如何查询a和b唯一,但是c不同的记录

【Sql Server】新手一分钟看懂在已有表基础上修改字段默认值和数据类型

总结:温故而知新,不同阶段重温知识点,会有不一样的认识和理解,博主将巩固一遍知识点,并以实践方式和大家分享,若能有所帮助和收获,这将是博主最大的创作动力和荣幸。也期待认识更多优秀新老博主。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
C#中,错误处理异常处理是非常重要的,可以帮助我们优雅地处理运行时错误,并保护应用程序免受崩溃和不可预测的行为。以下是一些常见的C#错误处理异常处理的技术和原则: 1. 异常(Exceptions):C#使用异常机制来处理运行时错误。当发生异常时,可以抛出(throw)异常,并使用try-catch语句来捕获(catch)和处理异常。 ```csharp try { // 可能会引发异常的代码 } catch (Exception ex) { // 处理异常的代码 } ``` 2. 异常类型(Exception Types):C#提供了许多内置的异常类型,例如`ArgumentException`、`InvalidOperationException`等。可以根据具体的情况选择合适的异常类型,或自定义异常类型。 ```csharp try { // 可能会引发异常的代码 } catch (ArgumentException ex) { // 处理特定类型的异常 } catch (Exception ex) { // 处理其他类型的异常 } ``` 3. finally块:除了try和catch块外,还可以使用finally块来确保无论是否发生异常,都会执行特定的代码。 ```csharp try { // 可能会引发异常的代码 } catch (Exception ex) { // 处理异常的代码 } finally { // 执行清理或资源释放的代码 } ``` 4. 自定义异常(Custom Exceptions):可以根据需要自定义异常类型,以便更好地表示特定的错误场景。 ```csharp public class MyCustomException : Exception { // 自定义异常定义 } ``` 5. 异常处理最佳实践: - 只捕获你知道如何处理异常,避免捕获所有异常。 - 在合适的层次捕获和处理异常,避免在每个方法中都使用try-catch块。 - 记录异常信息,以便进行故障排除和日志记录。 - 在catch块中避免使用空的catch语句,至少输出或记录异常信息。 - 使用finally块进行清理和资源释放操作。 - 使用using语句来确保及时释放使用了IDisposable接口的对象。 ```csharp try { using (var resource = new MyDisposableResource()) { // 使用资源的代码 } } catch (Exception ex) { // 处理异常的代码 } ``` 以上是一些常见的C#错误处理异常处理的技术和原则。合理地使用异常处理机制可以提高应用程序的健壮性和可靠性,减少潜在的错误和问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈小5

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值