PDA

View Full Version : فرستادن Exception از لایه BusinessLayer به لایه Presentation



vista.12345
چهارشنبه 18 اردیبهشت 1387, 14:17 عصر
با سلام . من در لایه BusinessLayer یک خطا گرفته ام و می خواهم آن را به لایه Presentation پاس بدهم . چگونه ؟؟؟

در لایه BusinessLayer داریم :

Catch xx As SqlClient.SqlException
Throw New Exception
End Try

حال در لایه Presentation چگونه پیغام خطا را به کاربر نشان دهیم ؟ چگونه یک پیغام را از یک لایه به لایه دیگر پاس دهیم

eyes_shut_number1
چهارشنبه 18 اردیبهشت 1387, 16:35 عصر
به راحتی میتونی متن اون خطا روئ د ر قالب یه رشته به عنوان بازگشتی تابع بفرسیت به لایه نمایشت و اونو در قالب تکس با مسیج نشون بدی

رضا عربلو
چهارشنبه 18 اردیبهشت 1387, 16:42 عصر
کد وی بی اش را بلد نیستم (پون اصلاً وی بی بلد نیستم) ولی کد سی شارپش :


throw new System.Exception(---);

Microsoft.net
چهارشنبه 18 اردیبهشت 1387, 20:00 عصر
بين catch و end try فقط بايد بنويسي throw xx

eyes_shut_number1
چهارشنبه 18 اردیبهشت 1387, 20:44 عصر
try

end try
catch
messagebox.show(ex.message)
end catch

Microsoft.net
پنج شنبه 19 اردیبهشت 1387, 17:25 عصر
try

end try
catch
messagebox.show(ex.message)
end catch


خسته نباشين واقعا! فرمودن مي خواهند خطا را به لايه بالايي بفرستند نه اينكه نشان بدند !

Keyvan_Y
پنج شنبه 19 اردیبهشت 1387, 18:09 عصر
در لایه Business یک متغیر از نوع String تعریف کن.


Private Shared strLastErrorText As String = String.Empty

سپس در قسمت Catch خطای اتفاق افتاده را به متغیر بالا نسبت بده و ارزش تابعی که خطا در اون اتفاق افتاده را False کن




Public Shared Function SetData() As Boolean


Try


'Your Code
SetData = True


Catch ex As Exception


strLastErrorText = ex.Message
SetData = False


End Try


End Function


حالا باید یک Function تعریف کنی که Error اتفاق افتاده را به لایه Presentation برگشت بده




Public Shared Function LastErrorText() As String


LastErrorText = strLastErrorText


End Function



حالا می تونی توی لایه Presentation چک کنی که آیا در Function SetData خطایی اتفاق افتاده یا نه....




If BLL.clsData.SetData = False Then
MessageBox.Show(BLL.clsData.LastErrorText) 'Showing the Exception
End If

eyes_shut_number1
جمعه 20 اردیبهشت 1387, 12:51 عصر
خسته نباشين واقعا! فرمودن مي خواهند خطا را به لايه بالايي بفرستند نه اينكه نشان بدند !
شما هم خسته نباشی و پستها رو کامل بخون!
توی پست 2 توضیح دادم جانم