返回错误消息与抛出异常
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了返回错误消息与抛出异常相关的知识,希望对你有一定的参考价值。
我正在为asp.net mvc项目编写一个类库。类库将返回实体并执行基本功能。在上一个项目中,我使用了这样的逻辑:
public class MyClassLibrary
public Response<ResponseMessage, MyEntity> GetMyEntity()
//Some code
public ResponseMessage SaveMyEntity(MyEntity e)
//Some code
public class BaseController:Controller
public ActionResult JsonDataSourceRequest<T>(Func<Response<ResponseMessage, List<T>>> operation, [DataSourceRequest] DataSourceRequest request)
try
Response<ResponseMessage, List<T>> ret = operation();
if (ret.message.type == ReturnType.OK)
return Json(ret.result.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
else
return ConvertToJson(ret.message);
catch (Exception ex)
ResponseMessage m = new ResponseMessage();
m.type = ReturnType.ERROR;
m.text = ex.text;
return ConvertToJson(m);
public ActionResult PartialView<T>(Func<Response<ResponseMessage, T>> operation)
//Some code
public ActionResult Action(Func<ResponseMessage> operation)
//some code
[CustomAuthorize]
public class MyController : BaseController
public ActionResult MyEntityRead([DataSourceRequest] DataSourceRequest request)
return base.JsonDataSourceRequest(() =>
return MyEntityService.GetAll();
, request);
这里为了使用BaseController的功能,我总是返回响应要么ResponseMessage
现在,我认为我可以拥有自定义的异常类,而不是从所有方法中返回ResponseMessage,我可以抛出这些异常。
我想知道这是否是一个好习惯。
提前感谢。
答案
我想知道这是否是一种好习惯。
否,抛出异常以处理非异常流是错误的设计。抛出异常是有代价的,如果可以按正常流程处理案件,则应避免使用它们。
另一答案
如果有特殊情况,您应该抛出异常。如果某些情况是预期的情况,则应使用返回值。只有您知道哪种情况适用于您的情况。
另一答案
“引发异常,而不返回错误代码
异常确保不会因调用代码未检查返回代码而引起注意。“
https://docs.microsoft.com/en-us/dotnet/standard/exceptions/best-practices-for-exceptions
以上是关于返回错误消息与抛出异常的主要内容,如果未能解决你的问题,请参考以下文章