Di C ++, Anda dapat menentukan bahwa suatu fungsi mungkin atau tidak boleh memunculkan pengecualian dengan menggunakan penentu pengecualian. Sebagai contoh:
void foo() throw(); // guaranteed not to throw an exception
void bar() throw(int); // may throw an exception of type int
void baz() throw(...); // may throw an exception of some unspecified type
Saya ragu untuk benar-benar menggunakannya karena hal berikut:
- Kompilator tidak benar-benar menerapkan penentu pengecualian dengan cara apa pun yang ketat, jadi manfaatnya tidak besar. Idealnya, Anda ingin mendapatkan kesalahan kompilasi.
- Jika suatu fungsi melanggar penentu pengecualian, saya pikir perilaku standarnya adalah menghentikan program.
- Di VS.Net, ini memperlakukan lemparan (X) sebagai lemparan (...), jadi kepatuhan terhadap standar tidak kuat.
Apakah menurut Anda penentu pengecualian harus digunakan?
Harap jawab dengan "ya" atau "tidak" dan berikan beberapa alasan untuk membenarkan jawaban Anda.