PDA

View Full Version : سوال: هندل کردن خطا در برنامه نویسی سه لایه



seven7777777
دوشنبه 14 اردیبهشت 1388, 09:26 صبح
دوستان سلام
من برای پیاده سازی برنامه نویسی سه لایه اومدم برای کاربران برنامم سه لایه User_Model ، User_Business و User_DataAccess تعریف کردم .

اما تو هندل کردن خطاها موندم .:گیج: یعنی نمی دونم تو کدوم لایه باید یک خطا رو throw کنم . تو Business یا DataAccess و یا هردو . لطفا در این مورد یه کم توضیح بدید .

رضا عربلو
دوشنبه 14 اردیبهشت 1388, 16:44 عصر
شما در هر لایه ای می توانید exception تان را Throw کنید و در لایه دیگر آن را catch کنید برای مثال در لایه دیتا یک exception ایجاد کنید و در لایه Business ان را catch کنید و یا در لایه Business یک exception ایجاد کنید و در لایه ui ان را catch کنید و بصورت MessageBox به کاربر نمایش دهید و ....

NewFoxStudent
دوشنبه 14 اردیبهشت 1388, 17:18 عصر
فرض کنید شما از یه کلاس یک متد رو در کلاس دوم فراخوانی کردید
دو حالت وجود داره
1-اون متد کارش رو به درستی انجام میده و کنترل برنامه رو به کلاس فراخوان برمیگردونه

2-اون متد کارش رو به درستی انجام نمیده(به هر دلیلی)
توی حالت دوم برای اینکه کنترل برنامه به کلاس فراخوان برگرده و کاربر از اتفاقی که افتاده مطلع بشه باید یک خطا ایجاد بشه و کلاس فراخوان متوجه بشه که کار متد به درستی انجام نشده
برای این منظور
کد خطا باید در متد فراخوانی شده ایجاد بشه (throw)
عملیات تشخیص خطا و برخورد مناسب با او در متد فراخوان (catch)

این مسئله توی برنامه نویسی چند لایه هم به همین صورت میتونه رعایت بشه

shahab_ss
دوشنبه 29 تیر 1388, 08:25 صبح
کد خطا باید در متد فراخوانی شده ایجاد بشه (throw)
عملیات تشخیص خطا و برخورد مناسب با او در متد فراخوان (catch)
ممکنه لطف کنید و یک نمونه کد برای انجام این کار نشون بدید؟

متشکرم:لبخندساده:

HDDSoft2001
دوشنبه 29 تیر 1388, 12:46 عصر
با سلام

من خودم شخصا در لایه Business این کار را انجام می دهم و خطای رخ داده را هندل و اگر لازم باشد به کاربر نمایش می دهم.

این هم کدش :

برای ایجاد خطا :

thow new Exeption(); s

برای هندل :


try
{
}
Catch(Exeption e)
{
console.Writeln(e.Message);
}