Dlaczego otrzymuję błąd kompilatora tutaj:Integer wyjątek przepełnienie
int a = 2147483647 + 10;
a nie tutaj, jeśli mam wykonując tę samą operację:
int ten = 10;
int b = 2147483647 + ten;
uczę wykorzystanie sprawdzony a strona internetowa MSDN nie jasne, dlaczego OverflowException jest podniesiona w pierwszym fragmencie kodu:
przez DE błąd, wyrażenie zawierające tylko wartości stałe powoduje błąd kompilatora , jeśli wyrażenie generuje wartość znajdującą się poza zakresem docelowym typu . Jeśli wyrażenie zawiera jedną lub więcej niestałych wartości, kompilator nie wykrywa przepełnienia.
Wyjaśnia tylko zachowanie, ale nie przyczyny tego zachowania. Chciałbym wiedzieć, co dzieje się pod maską.
Otrzymujesz błąd kompilatora, a nie wyjątek w pierwszym przypadku. – CodesInChaos