نقل قول نوشته شده توسط علی کشاورز مشاهده تاپیک
چیزی که شما در دلفی دارید، فراتر از یک مکانیزم ساده لاگ کردن خطا هست؛ و بهش Structural Exception Handling (یا به طور اختصار SEH) گفته میشه که خودش یک مبحث پیچیده و پیشرفته در برنامه نویسی هست. ساختارهای try-finally و try-except در دلفی یک مکانیزم سلسله مراتبی برای تشخیص Exception و ارسال آن به ساختارهای بالاتر فراهم می کنند. در هر مرحله بلوک های کنترلی امکان هندل کردن اون Exception رو دارند، و اگر Exception ایی هندل نشه، نهایتا به شی Application میرسه.
در تأیید نوشته‌های آقای کشاورز به یه نکته از کتاب پر ارزش Mastering Delphi 7 نوشته آقای مارکو کانتو اشاره می‌کنم. ایشون تو فصل دوم کتاب، در پایان بخش Program Flow and the" finally Block" (روند برنامه و بلاک finally) این طور نوشتن:

Handling the exception is generally much less important than using finally blocks, because Delphi can survive most exceptions. Too many exception-handling blocks in your code probably indicate errors in the program flow and possibly a misunderstanding of the role of exceptions in the language.

"کار کردن با استثنائات معمولاً کم اهمیت‌تر از استفاده از بلاک‌های finally می‌باشد. زیرا دلفی می‌تواند از بیشتر استثنائات جان سالم به در برد. تعداد زیاد مدیریت استثنائات در کد شما، احتمالاً نشان دهنده خطاها در روند برنامه و نیز شاید به خاطر درک نادرست از نقش استثنائات در این زبان می‌باشد."
با این وجود یه تعداد دیگه‌ای از استثنائات رو در اینجا لیست می‌کنم:

Exception: Base class
EAbort: Abort without dialog
EAbstractError: Abstract method error
AssertionFailed: Assert call failed
EBitsError: Boolean array error
ECommonCalendarError: Calendar calc error
EDateTimeError: DateTime calc error
EMonthCalError: Month calc error
EConversionError: Raised by Convert
EConvertError: Object convert error
EDatabaseError: Database error
EExternal: Hardware/Windows error
EAccessViolation: Access violation
EControlC: User abort occured
EExternalException: Other Internal error
EIntError: Integer calc error
EDivByZero: Integer Divide by zero
EIntOverflow: Integer overflow
ERangeError: Out of value range
EMathError: Floating point error
EInvalidArgument: Bad argument value
EInvalidOp: Inappropriate operation
EOverflow: Value too large
EUnderflow: Value too small
EZeroDivide: Floating Divide by zero
EStackOverflow: Severe Delphi problem
EHeapException: Dynamic memory problem
EInvalidPointer: Bad memory pointer
EOutOfMemory: Cannot allocate memory
EInOutError: IO error
EInvalidCast: Object casting error
EInvalidOperation: Bad component op
EMenuError: Menu item error
EOSError: Operating system error
EParserError: Parsing error
EPrinter: Printer error
EPropertyError: Class property error#
EPropReadOnly: Invalid property access
EPropWriteOnly: Invalid property access
EThread: Thread error
EVariantError: Variant problem


این هم لینک دانلود کامپوننت‌های jcl و JVCL (غیر مستقیم و با حجم تقریباً Mb‏ 19.5)، ابزاری برای مدیریت استثائات در برنامه‌ی اجرایی
http://jaist.dl.sourceforge.net/proj...-Build3845.zip
برای دریافت اطلاعات در مورد این کامپوننت به پست زیر نگاه کنید:
https://barnamenevis.org/showthread.p...l=1#post615322