I don't really know the best way to handle exception in an multi-language application.

Where should I handle the translation of the error message (Exception.Message)?

Shall I translate the message in the ctor as soon as I throw the exception?

throw new MyException("Error message", Resource.MyException_TranslatedMessage);

Or do I throw the exception and I use a home made helper that will find the error message using the type of the exception in the logic of the View?

try
{
    //...
}
catch(Exception ex)
{
    myLabel.Text = new ExceptionTranslator(ex).Translate();
}

Or, does Microsoft offer a tool or a mechanism to do that?

In a word: what are the good practices to handle exception messages translation?

Edit
Report