مشاهده نسخه کامل
: try...catch برای وب سرویس و لزوم استفاده کردن یا استفاده نکردن از حذف و ویرایش آبشاری
قله بلند
19-12-2008, 21:17
سلام دوستان
سوال اول: فرض کنید من یک وب سرویس دارم که مثلاً عمل حذف از یک جدول رو انجام می ده
من از try استفاده می کنم و ExecuteNonQuery رو اجرا می کنم.
حالا داخل catch چی بنویسم؟ آخه سمت سرور که نمی شه از فرم و کلاس های آن استفاده کرد.
وقتی از try...carch استفاده نمی کنم و خطایی هم در کارم وجود داره یک صفحه باز می شه و ماجرای خطا رو می گه ولی ما باید همیشه فرض رو بر ساده کردن کارها برای کاربر قرار بدیم.
به نظر شما اصلا لزومی داره که داخل catch دستوری قرار داده بشه. می خواهم همه چیز استاندارد باشه.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سوال دوم: اصولاً استفاده از حذف آبشاری و ویرایش آبشاری توصیه می شود؟ چرا؟
سلام
1)
استفاده از ساختار Try مفید است، میتوانید حداقل یک مقدار bool از تابع خود بازگردانید که نشانگر انجام یا عدم انجام عملیات باشد تا فراخوانننده، همواره بدون مشکل بتواند تابع شما را فراخوانی کند و به سادگی از صحت انجام کار مطلع شود و در صورت نیاز خود فراخواننده پیغام مناسبی را نشان دهد.
در جهت دیگر میتوانید یک مکانیزم ثبت گزارش خطاها را در catch مستقر کنید تا مقادیر متغییر ها و توضیح خطا و ... در محلی ذخیره شود، تا بعداً و سرفرصت برنامه نویس پروژه بتواند با مطالعه این گزارش های خطا، دلیل را پیدا کند و برنامه را رفع باگ کند.
2)
بستگی به نوع دیتا و برنامه دارد و تشخیص آن به عهده برنامه نویس است.
شما باید تشخیص دهید که آیا میخواهید با حذف یک والد کلیه اطلاعات وابسته هم حدف شوند یا خیر و...
قله بلند
21-12-2008, 18:53
با سلام
من از سمت سرور یک dataset رو می فرستم. اگر رشته بود می شد آرایه ای از رشته ها رو فرستاد.
البته همه چیز درسته و برنامه با سلامت کامل کار می کنه. آیا ممکن احیاناً اتفاقی بیفته و برنامه درست کار نکنه؟
به نظر شما من باید چه کاری را انجام دهم؟
با تشکر
سلام
اگر منظورتان در خصوص Try است باید بگویم، تجربه نشان داده بهترین کدها هم در شرایط خاص با مشکل مواجه میشوند، مخصوصاً که مربوط به دیتابیس شوند، خطاهایی رخ میدهد که حتی فکرش را هم نکرده اید.
یک دستور آپدید ساده و محکم و صحیح به راحتی و در شرایط یک در هزار میتواند با خطای zero update مواجه شود، چیزی که خیلی ها تا حالا اصلاً ندیده اند!
این خطاها میتوانند ناشی از بی دقتی برنامه نویس (duplicate و یا دستورات کار روی مقادیر درحالی که Null هستند و... ) باشد و جبر شرایط.
یا حتی به علت درخواست و پردازش های همزمان زیاد، هر دستوری به راحتی میتواند با timeout مواجه شود و...
در کل به نظر من داشتن یک بلوک try برای دستورات دیتابیسی بد نیست.
قله بلند
22-12-2008, 16:13
با سلام
ممنونم
راستش علم شما از فهم من خیلی بالاتر است. به مطالبی اشاره می کنید که به صورت تئوری قابل فهم نیست. حتماً باید تجربه اندوخت تا فرمایشات شما قابل درک باشد.
من از همان دستوراتی که در برنامه ام دارم استفاده می کنم تا انشاء الله با اندوختن علم و تجربه بیشتر، این مفاهیم را عملاً در ک کنم.
با تشکر فراوان
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.