构造函数中的数据验证

Ser*_*ruk 3 c# validation constructor

我有一个构造函数需要验证传递的数据.

public Rational(int m, int n)
Run Code Online (Sandbox Code Playgroud)

如果n == 0我应该通知用户.
我知道3种方法.

1)只需return;在coustructor中
生成2)生成异常
3)创建一个将创建对象的静态方法

r = new Rational();
r = Rational.GetObject(1,2);
Run Code Online (Sandbox Code Playgroud)

在构造函数中验证数据的最佳方法是什么?

Jus*_*ner 8

考虑到你正在处理一个传递给构造函数的无效参数,我可能会ArgumentException从构造函数中抛出一个新的.