2010-10-19 30 views
7

Olası Çoğalt:
C : How do you simulate an 'exception' ?İstisna

Merhaba, bu durum işleme C++ ancak C eklendiğini haber Ama aynı zamanda bu durum işleme okumak OS tarafında sağlanan, bu yüzden C yakalamak ve atmak gibi aynı davranışı işletim sisteminden çağırmak için herhangi bir işlevi yoktur? Teşekkürler.

+6

Yinelenen: [C: Bir 'istisna' taklit nasıl] (http://stackoverflow.com/questions/1219438/), [I mesajları ile yuvalanabilir try-catch-son açıklamada ile istisnalar uygulamak nasıl C] (http://stackoverflow.com/questions/1779189/), [C (C++ değil) için özel kütüphane] (http://stackoverflow.com/questions/3581818/), [C için özel kütüphane (C++ değil))] (http://stackoverflow.com/questions/1410329/) ve ilgili: [Başlık altında istisnalar nasıl uygulanır?] (http://stackoverflow.com/questions/1995734/), [Bir istisna nasıl atılır C?] (http://stackoverflow.com/questions/2891766/) vb – dmckee

+0

Hadi, B.Gen, burada yeni değilsin. İşlerin nasıl yürüdüğünü biliyorsun. – dmckee

cevap

7

C dilinin kendisinin istisna işleme desteği yoktur. Bununla birlikte, bir platform + derleyiciye özel olarak C için bir istisna işleme aracı vardır. Pencerelerde örneğin C programları SEH istisna işlemlerini kullanabilir.

Ben setjmp ve longjmp istisna işleme C. C işlevi çifti geçmişte daha yakın fırlatma desenine düşünün bağımsız değişkenleri gördüm ama araştırmaya değer

1

Platformdan bağımsız bir şekilde değil. Ve bu sadece SW istisnaları değil, donanım/OS düzeyinde istisnalar için olurdu.

2

C standart bir kitaplıkta istisnalar sağlar: setjmp()/longjmp().