Por que a conversão int com valor de enum inválido NÃO gera exceção?

Se eu tiver um enum assim:

enum Beer
{
    Bud = 10,
    Stella = 20,
    Unknown
}

Por que não lança uma exceção ao transmitir umint que está fora desses valores para um tipo deBeer?

Por exemplo, o código a seguir não gera uma exceção, gera '50' para o console:

int i = 50;
var b = (Beer) i;

Console.WriteLine(b.ToString());

Acho isso estranho ... alguém pode esclarecer?

questionAnswers(4)

yourAnswerToTheQuestion