How to prevent an instance of a class from being created when the condition is true. C# : <p>I have the class Pos:</p>

<pre><code>public class Pos
{
    int x;
    int y;
    public int X
    {
        get
        {
            return x;
        }
        set
        {
            try
            {
                if (value == 3)
                {
                    x = value;                                               
                }                    
            }
            catch
            {
                throw new ArgumentException();
            }
        }
    }
    public int Y { get; set; }
    public Pos(int x, int y)
    {
        X = x;
        Y = y;
    }
}
</code></pre>

<p>I have an instance created, with X = 0. That is, as far as I understand, in the case of value = 3 -> x = 0 and in the constructor X = 0, then create an instance of the class.
How do I prevent an instance of a class from being created when the x property setter fails?
I will create a List that should not contain "wrong" objects.</p>
