در C++، برخی از خطاهای سطح سیستمعامل (OS) قابل catch نیستند و نمیتوان آنها را با استفاده از مکانیزم try/catch در C++ مدیریت کرد. این خطاها معمولاً به عنوان نتیجهای از وقوع یک خطای سختافزاری یا نقض یک قانون سیستمعامل رخ میدهند و باعث خاتمه برنامه میشوند.
برخی از این خطاهای سطح سیستمعامل عبارتند از:
-
خطای حافظه (memory access violation): این خطا زمانی رخ میدهد که برنامه تلاش کند به قسمتی از حافظه دسترسی پیدا کند که به آن دسترسی ندارد.
-
خطای شناور (floating point exception): این خطا زمانی رخ میدهد که برنامه تلاش کند یک عمل ریاضی نامعتبر را با استفاده از اعداد شناور انجام دهد، مانند تقسیم بر صفر.
-
خطای نقض دستور (illegal instruction): این خطا زمانی رخ میدهد که برنامه تلاش کند یک دستور نامعتبر را در پردازنده اجرا کند.
این خطاها معمولاً باعث خاتمه برنامه میشوند و نمیتوان آنها را با استفاده از try/catch در C++ catch کرد.