- امکان Bubbling در ساختار زبانی C# وجود دارد. ولی در کد هایی که توابع به صورت تو در تو صدا زده می شوند از آن پرهیز نمایید. تا حد ممکن سعی کنید Exception ها را در همان سطحی که رخ می دهند، Catch کرده و مدیریت کنید. همچنین از throw کردن مجدد Exception برای استفاده از Bubbling تا حد امکان پرهیز کنید. درواقع Catch کردن متوالی Exception در سطوح مختلف Stack موجب پایین آمدن چشمگیر سرعت برنامه خواهد شد.
- از استفاده از متدها و ساختار هایی که مستعد بروز Exception حتی در موارد نچندان بحرانی هستند، تا حد امکان پرهیز کنید. برای مثال می توان به تبدیل کردن یک رشته در حالی که String حاوی مقدار عددی نیست اشاره کرد. همچنین خواندن مقداری از یک آرایه خالی نمونه دیگری از این شرایط است. در چنین حالتی شما می توانید از متد ()Int32.Parse به جای ()Convert.ToInt32 استفاده کنید. این در حالی است که روش دوم در صورتی که رشته ورودی حاوی مقدار عددی نباشد Exception خواهد داد.
- ممکن است در کد خود بخواهید به هر دلیل Exception به وجود آورده و آن را Throw کنید. حتماً در آن از یک پیام خوانا و واضح به عنوان Message استفاده نمایید. بدین روش در صورت Catch شدن این Exception، محل رخ دادن و دلیل آن تا حدامکان مشخص خواهد بود.
برای برگرداندن پیغام خطا یا مقادیر غیرمتعارف از طریق متد های نوشته شده توسط خودتان به تابع فراخوانی کننده و مدیریت کردن و بررسی کردن پیام و تفسیر آن تا حد امکان از Exception استفاده نمایید.