public static Avaliacao Parse(string texto)
{
if (texto == null) throw new Exception("Valores nulos não são permitidos");
int nota;
if(int.TryParse(texto, out nota)){
if (nota < 0) throw new Exception("Valores negativos não são permitidos");
if (nota > 10) throw new Exception("A nota máxima permitida é 10");
}
return new Avaliacao(nota);
}
Não é exatamente o que foi pedido, fiz para praticar