C# 在MVP设计中哪里定义错误代码?

C# 在MVP设计中哪里定义错误代码?,c#,wpf,mvp,C#,Wpf,Mvp,我正在用C#创建一个基于非棋盘游戏的游戏,我试图遵循MVP设计模式。我还没有启动UI,但我可能会首先使用WPF,所以我认为MVP模式会很适合。当我编写控制游戏的模型时,我已经达到了我想要为不同动作定义错误代码的程度。我遇到了一个问题,一些操作可能会返回几个不同错误中的一个,具体取决于操作出错的原因 我最初的想法是有一个二级项目,为了方便起见,我将其称为实用程序,其中我将所有错误定义为int常量。然后,具有模型的项目可以引用该模型,以找出在操作过程中所需的错误,演示者随后可以使用实用程序为错误设置

我正在用C#创建一个基于非棋盘游戏的游戏,我试图遵循MVP设计模式。我还没有启动UI,但我可能会首先使用WPF,所以我认为MVP模式会很适合。当我编写控制游戏的模型时,我已经达到了我想要为不同动作定义错误代码的程度。我遇到了一个问题,一些操作可能会返回几个不同错误中的一个,具体取决于操作出错的原因

我最初的想法是有一个二级项目,为了方便起见,我将其称为
实用程序
,其中我将所有错误定义为int常量。然后,具有模型的项目可以引用该模型,以找出在操作过程中所需的错误,演示者随后可以使用
实用程序
为错误设置相同的常量,以便知道要显示的消息


作为MVP或WPF中的错误代码方案,这有意义吗?模型是否应同时返回错误及其显示消息,还是确定消息是视图/演示者的工作?

为什么要使用错误代码?也许我不知道MVP模式和错误代码有什么特别的地方,但一般来说,使用错误代码而不是异常会导致代码大小增加,并且在忽略错误时会导致更高的错误率。一旦一个方法可以返回一个错误代码,您就必须在该方法上面的堆栈中的所有调用方中检查该错误代码,直到您知道该错误已经得到处理。大多数时候,您都是在调用堆栈的顶部处理错误,而调用堆栈正是您应该放置异常处理程序的地方。@MartinLiversage可能我不清楚我的意思,或者错误代码不是我想要的概念。这并不是因为方法出了问题,而是游戏玩家在游戏中采取了无效的行动,需要被告知该行动是无效的,以防有多种原因。我想要一种从模型到视图的沟通方式。对我来说,例外是针对编码问题和运行时错误,而不是传递验证错误之类的信息。好吧,但为什么不引入一个错误模型,使用比简单代码更丰富的模型来表示错误呢?通常,验证错误包含的数据不仅仅是“输入无效”,如“结束日期早于开始日期”。如果你的错误实际上只是数字,那么你最好用一个枚举来表示它。@MartinLiversage奇怪的是,我没有想到这一点,但是一个错误模型是最有意义的。谢谢你把我推向更好的方向。