بلوک فاینالی برای پاکسازی هرگونه منابع اختصاص یافته در بلوک try مفید است. همچنین اجرای هرگونه کدی که باید حتما" اجرا شود، حتی اگر استتثنایی وجود داشته باشد. کنترل اجرای برنامه همیشه به بلوک finally تحویل داده می شود، صرف نظر از اینکه بلوک try چگونه پایان می پذیرد.
از آنجایی که بلوک catch برای مدیریت خطاهایی است که در یک بلوک دستور اتفاق می افتند، finally تضمین می کند که بلوکی از دستورها فارغ از اینکه بلوک try قبلی چطور تمام شده (باخطا یا بی خطا)، اجرا شود.
try{
Commands List
}catch(Exception1 e1){
Commands List
}catch(Exception2 e2){
Commands List
}catch(ExceptionN eN){
Commands List
}finally{
Commands List
}
#c همچنین دستور using را که املای (syntax) راحتری نسبت به try-finally دارد، ارائه می دهد.
در مورد کلیدواژه using بعدا توضیح خواهم داد.