throw exception, או שמא סתם throw?
לעתים אני נתקל בקוד בסגנון הבא:
try
{
DoSomething();
}
catch (Exception ex)
{
// Some logging operation or whatever...
throw ex;
}
השורה throw ex כביכול זורקת חריג חדש עם אותם הפרטים של ה - Exception הקודם, מה שגורם למחיקת ה - Stack Trace.
במידה וביצענו פעולות כלשהן על חריג, ואנחנו מעוניינים לזרוק אותו מחדש, יש להשתמש במילה throw בלבד, לדוגמה:
try
{
DoSomething();
}
catch (Exception ex)
{
// Some logging operation or whatever...
throw;
}
במקרה הזה ה - Stack Trace המקורי ישאר (כמובן שזה תקף לכל שפה דוטנטית אחרת).