gpt4 book ai didi

c# - 返回错误信息 vs 抛出异常

转载 作者:行者123 更新时间:2023-11-30 19:05:27 25 4
gpt4 key购买 nike

我正在为 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 我可以抛出这些异常。

我想知道这是否是一个好的做法。

提前致谢。

最佳答案

I wonder if it is good practice or not.

不,抛出异常来处理非异常流是糟糕的设计。抛出异常是有代价的,如果您能以正常流程处理您的案例,您应该避免它们。

关于c# - 返回错误信息 vs 抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21813688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com