سلام
خیلی ممنون بابت پاسختون
اینو اضافه می کنم برای باقی دوستان که دنبالش هستند:
بیش از 40 نوع خطای مختلف داریم که تقریبا بیش از 30 تاش خطاهای سمت کلاینت هستن و باقی خطاهای سمت سرور
لیست کاملش رو می تونید اینجا ببینید
اگر ما بخوایم یکی از این خطاها را مدیریت کنیم، مثلا خطای 404 که بخاطر نبودن یک صفحه اتفاق می افته، باید تو وب کانفیگ همچین کدی داشته باشیم:
<customErrors mode="On">
<error statusCode="404" redirect="ErrorPage.aspx?Error=404"/>
</customErrors>
مشکل اینجا اتفاق می افته که اگر تو پروژه تون هر خطایی اتفاق بیافته، شما به صفحه 404 هدایت می شید
برای اینکار باید بیاد حتما بقیه خطا ها رو هم مدیریت کنید تا با این خطا قاطی نشه
یک راهش اینه شما بیاید بگید که من از try-catch استفاده می کنم و مطمئن هستم که هیچ خطایی رخ نمی ده و تنها خطای موجود خطای 404 خواهد بود!
که البته و صد البته این اشتباهه
اولا ساختار try-catch تمام خطاها رو مدیریت نمی کنه. مثلا خطاهای حاصل از سرریز رو نمی شه مدیریت کرد با این ساختار
ثانیا امکان داره به هر دلیله دیگه ای خطایی اتفاق بیافته که شما انتظارشو نداشتید
پس باید بیایم و برای این احتمالات تو وب کانفگ خطاهای دیگه رو هم مدیریت کنیم که کد وب کانفیگ می شه این شکلی :
<customErrors mode="On">
<error statusCode="404" redirect="ErrorPage.aspx?Error=404"/>
<error statusCode="500" redirect="ErrorPage.aspx?Error=500"/>
</customErrors>
حالا باید بیایم برای هر 43 تا خطای موجود یک خط اینجا کد بنوسیم که اصلا نیازی هم بهشون نداریم!؟
خوشبختانه لازم نیست.
باید بیایم کد رو اینطوری تغییر بدیم تا لازم نباشه برای هر خطا یک خط به کدمون اضافه کنیم:
<customErrors mode="On" defaultRedirect="ErrorPage.aspx?500">
<error statusCode="404" redirect="ErrorPage.aspx?Error=404"/>
<error statusCode="500" redirect="ErrorPage.aspx?Error=500"/>
</customErrors>
این کد باعث می شه که من دو نوع خطا رو بررسی کرده باشم که امکان اتفاقش زیاده و لازم دارم مدیریتشون کنم
اولی خطای 404 و دومی خطا Internal Server
تکلیف بقیه خطا ها هم با این عبارت defaultRedirect="ErrorPage.aspx?500 مشخص می شه
یعنی هر خطای دیگه ای هم اتفاق افتاد بیا سراغ صفحه مورد نظر
حالا ما اینجا با کوئری استرینگ کد خطا رو به صفحه مورد نظر انتقال می دیم و اونجا می فهمیم که کدوم خطا اتفاق افتاده و یا اینکه دوتا صفحه جداگونه، یکی برای 404 و یکی هم برای بقیه خطا ایجاد کنیم
من خودم دیشب کلی گشتم ولی مثل اینکه همین چهارخط توضیح منو کسی از دلش نیومده تو سطح اینترنت بزاره!
نمی دونم این جامعه برنامه نویس های ایرانی چرا اینطورین! هر چی که بلدن برای خودشون نگه می دارن!
باز معرفت شما دوستان که کمک کردید و می کنید
خیلی ممنون