PDA

View Full Version : سوال: آيا MethodName میتونه اسم پروسیجر رخ دادن خطا رو گزارش کنه؟



mbshareat
دوشنبه 01 مرداد 1403, 00:16 صبح
سلام. احوال؟
یک کامپوننت Application Events روی فرم گذاشتم و در رویداد onException خواستم بعضی خطاها رو به فارسی به کاربر بگم.
تصادفا به پراپرتی MethodName برای پارامتر E: Exception این رویداد برخوردم. آیا کاربردش برگردوندن اسم پروسیجر خطا هست؟
امتحان کردم هیچی نشون نداد.(البته حواسم هست که وقتی برنامه رو Exe گرفتیم و اجرا کردیم میشه پیغام رو با این رویداد بررسی کرد نه در محیط طراحی)

یوسف زالی
دوشنبه 01 مرداد 1403, 15:42 عصر
سلام.
می تونید از یورکالاگ، مدشی، یا جی سی ال استفاده کنید.
https://stackoverflow.com/questions/4146681/can-delphi-tell-me-the-name-of-the-routine-that-threw-an-exception

mbshareat
سه شنبه 02 مرداد 1403, 12:20 عصر
ممنونم
من فکر می کنم قبلا نتونسته بودم madshi رو نصب کنم. چند تا برنامه بزرگ دارم که نمیشه در دلفی بالای هفت اجراشون کرد. علاوه بر اینکه بلد نیستم چطور از این کامپوننت استفاده کنم. قدیمی ترین نسخه اش هم خیلی جدید تر از نسخه دلفیم هست و بعید می دونم کار کنه. یک فایل اجرایی 2012 madcollection.exe دانلود کردم که هنوز نمی دونم چه استفاده ای داره.
JDi , FastMM که از اسمشون هم وحشت دارم.:لبخند: از کد اون صفحه هم سر در نیوردم

mbshareat
سه شنبه 02 مرداد 1403, 12:27 عصر
اون فایل اجرایی رو اجرا و قسمت مدیریت خطای مدشی رو نصب کردم. یک کامپوننت madExceptionHandler به پالت کامپوننهام اضافه شد . نمی دونم چه کارش کنم.
مثلا فرض کنید این کد رو داریم:
procedure TForm1.FormCreate(Sender: TObject);
Var
S:TStringList;
begin
S:=TStringList.Create;
ShowMessage(S.Strings[20]);
end;



چطور پیغام خطا و محل وقوع خطا رو به دست بیاریم؟