SORU
27 EKİM 2014, PAZARTESİ


Neden bölme int.-1 MinValue tarafından denetlenmeyen bir bağlamda OverflowException attı?

int y = -2147483648;
int z = unchecked(y / -1);

İkinci satır OverflowException bir neden olur. unchecked bunu önlemek gerekmez mi?

Örneğin:

int y = -2147483648;
int z = unchecked(y * 2);

bir istisna yapmaz.

CEVAP
27 EKİM 2014, PAZARTESİ


C bölümü 7.72 (Bölüm Operatör)# 4 gözlük Birleşik Devletleri:

Eğer sol işlenen en küçük gösterilebilir ise int veya long değeri ve sağ işlenen -1, bir taşma oluşur. Kontrol bağlamında, [...]. Denetlenmeyen bir bağlamdauygulama tanımlı bir Sistem olup olmadığını.ArithmeticException (ya da bir alt sınıf bunun gibi) atılırveya taşması sonucu değeri sol işlenen olarak bildirilmiyor.

Bu denetlenmeyen bir bağlamda bir istisna atar aslında bu davranış, uygulama tanımlı olduğundan aslında bir hata değildir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CMTelly

    CMTelly

    2 Mayıs 2007
  • MrRandomSong

    MrRandomSong

    29 Kasım 2009
  • Samvith V Rao

    Samvith V Ra

    20 EKİM 2006