使用外部调用在 Blazor Server 应用中指示/呈现错误和成功的最佳做法是什么?

What is the best practice for indicating / rendering error and success in a Blazor Server app with external calls?

提问人:tri-catch 提问时间:8/18/2023 更新时间:8/18/2023 访问量:27

问:

这更像是一个一般性问题,而不是特定于 Blazor 的问题。

我正在编写一个 Blazor 服务器应用程序,该应用程序用作对 SQL DB 中的数据执行 CRUD 操作的 UI。这些 CRUD 操作是通过应用程序层中的命令和查询实现的。在 UI 上,我想根据应用层命令或查询的结果呈现错误/成功消息。

我很好奇其他人认为这样做最合适的方法是什么?

以下是我目前实现的一些伪代码:

try 
{
   Task updateTask = appService.UpdateEntity(entity);
   await updateTask;

   if (updateTask.RanToCompletion) 
      { Display("Command completed successfully", Color.Success); }
}
catch
{
   Display("Error: Could not update entity.", Color.Error);
}

此处,该方法返回 .我知道异常不应该用于应用程序逻辑,但以这种方式使用异常是可以接受的,对吧?UpdateEntityTask

有回报会更好吗?如果是这样,我会在成功时返回 true 并抛出异常吗?UpdateEntityTask<bool>

返回一些用作不同错误/成功代码的对象会更好吗?UpdateEntity

我很好奇其他开发人员会如何处理这个问题。

C# 用户界面 错误处理 Blazor-server-side cqrs

评论

0赞 jeb 8/18/2023
当更新失败时,我个人会抛出一个特定的异常。捕获该异常,将其记录下来并显示适当的错误消息。如果更新可能由于某种原因而失败,则可以使 TryUpdate() 方法返回布尔值。我喜欢让更新方法返回编辑的实体,因为某些属性可能已经更改。但 void 也可能是可以的,具体取决于您的应用程序。

答: 暂无答案