ورود

نسخه کامل مشاهده نسخه کامل : نیاز به کمک فوری, مشکل با مدیریت استثناها در سی شارپ



ahmad.ferdinand
26-01-2016, 17:17
با سلام خدمت دوستان من یه برنامه ای با سی شارپ و سضم 2008 نوشتم واسه جایی اونجا روی سیستم ها نصبه و سیستم ها شبکه هستن و به بانک اس کیو ال سرور وصل میشن . حالا چند وقتیه مدیریت استثناها روی برنامه کار نمیکنه , یعنی try catch هایی که اینجا رو سیستم خودم تعریف کردم درست کار میکنن ولی روی سیستم های اونجا انگار از کار افتادن و دائم خطای اکسپشن صادر میشه و استثناها مدیریت نمیشن, کسی از دوستان میدونه مشکل از کجاست ؟ جایی تنظیماتی چیزی داره ؟ خیلی ممنون

_H2_
28-01-2016, 22:03
سلام
مشکل شما از جای دیگری است که try-catch ندارد.

درحال حاضر پیشنهاد میکنم یک مدیریت عمومی خطا برای برنامه تان اضافه کنید(تا هرجایی خطا رخ دهد، اجرا شده ومورد را ثبت کند) و حتما خطاهای ایجاد شده را با اطلاعات کامل در فایل ثبت وقایعی ذخیره کنید تا بتوانید با بررسی دقیق مورد را مرتفع کنید.
نوع پروژه تان چیست؟ WinForm,WPF,WebForm,MVC,WinService و... ؟؟؟

((
درنهایت هم دقت کنید که باید برنامه تان را دقیق تر وبهتر بنویسید...
واز try-cache نه جهت مخفی سازی خطاها، بلکه جهت مدیریت واجرای کدپشتیبان و یا حداقل تهیه log استفاده کنید
))
موفق باشید.

ahmad.ferdinand
29-01-2016, 15:13
ممنون دوست عزیز , پروژه winform هستش با vs 2010 و sql 2008 , این کار و کردم یعنی try catch سراسری گذاشتم و لاگ هم میکنم ,اکسپشن تو بخشهایی هست که try cach بلاک شده, تو سیستم خودم درست کار میکنه اما سیستم های اونجا نه , انگار try cach ها از کار افتادن یا همچین چیزی , جالب اینه که اون اوایل درست بوده و تازگی ها اینجوری شده , به نظر شما کار ویروس میتونه باشه ؟
اونا البته نود 32 اورجینال رو سیستم نصب دارن , منم اسکن کردم ویروس نداشتن , البته یه ویروسی رو سیستم من بود از نوع maleware وقتی برنامه رو ستاپ میکردم آنتی ویروس اونو به اسم
.1 HEUR/QVM 05 MALEWARE.GEN میشناسه و قرنظینه میکنه ممکنه ازاین باشه ؟ البته واسه اونا یه نسخه بدون ویروس نصب کردم حالا موندم ازویروسه یا نه , نظر شما چیه ؟ ممنون

_H2_
29-01-2016, 15:53
سلام مجدد
شما این نمونه کد (خیلی ساده شده) را به برنامه تان اضافه کنید و در تابع main یا form-load فقط این کلاس را new کنید.
با رخ دادن هر خطایی فایل لاگی در temp ویندوز تشکیل خواهد شد، اگر خودتان متوجه شدید که بهتر وگرنه فایل لاگ تولید شده به همراه سورس تابعی که نامش در فایل لاگ آمده را اینجا قرار دهید تا با هم نگاهی کنیم...

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

ahmad.ferdinand
29-01-2016, 21:31
با تشکر
من این کارارو کردم توی فایل لاگ مینویسه که خطای فرمت اکسپشن در فلان خط و داری در حالی که اون خط درسته و مقادیر درست پاس میشن .
بحث کد مشکل دار و این چیزها نیست وگرنه قرار میدادمش , مشکل اینه که تو سیستم سون خودم و ایکس پی مجازیم درست کار میکنه برنامه , یعنی اون خط و یا جاهای دیگه اکسپشن ها درست هَندل میشن ولی تو سیستم های اونجا این اتفاق نمی افته .

_H2_
29-01-2016, 22:17
سلام
همچین موردی که عرض میکنید را تا به حال مشاهده نکردم و حقیقت آنکه بعید میدانم رخ دهد ...
والبته حتما میدانید این که دررایانه خودتان خطا نمیدهد چیز خیلی جدید وخاصی نیست ...
(همین الآن نقدی یکی از دوستان در همین سایت پروژه دارد که یک exe دات نتی را با یک سرور با کد php استفاده کرده ودررایانه خودش صحیح کار میکرده ولی با آپلود کد php مشکلی بروز کرد ...)

نمیخواهم بگویم اشتباه میکنید، فقط میگویم مسئله ، به ذهنتان استراحتی بدهید ومسئله را با دید بازتر بررسی کنید، شاید مشکل درجایی باشد که خیلی به آن مطمئن هستید وفکرش را نمیکنید ...

شاید خط را اشتباه کرده اید
شاید درون خود کد Catch تان مجدد خطایی رخ دهد
شاید نوع کلاس تسخیر شده در Catch با خطای رخ داده مطابق نباشد
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
و...

بهرحال باچشمان بسته و بدون کد ، بدون خطا با شرایطی که شما میفرمائید ، نمیتوان کمک بیشتری کرد.
اگر نمیخواهید کدتان را اصلاح کنید، فقط میتوانم پیشنهاد کنم نسخه دات نت کلاینت تان را بروز کنید.
موفق باشید. :n01:

ahmad.ferdinand
29-01-2016, 23:14
ممنون
میخوام ببرم رو یکی از سیستم ها ویژوال استودیو رو نصب کنم و پروژه رو اونجا لود کنم بعد با بریک پوینت و اینا ببینم مشکل ریشه ای از کجاست . نتیجه کار رو میام اینجا میگم تا دوستان از تجربه استفاده کنن
تشکر

ahmad.ferdinand
31-01-2016, 10:42
:n34: امان از دست این ویندوز 8 , مشکلات از اون بود جالبه حتی پروژه رو توی اونجا لود کردم و بریک پوینت هم گذاشتم متد کانورت دو تا عدد و نمیتونست از متغیر بگیره و تبدیل کنه و مستقیم میدادیم ده و بیست درست کار میکرد , مشکلی بس عجیب و اعصاب خوردکن بود

_H2_
31-01-2016, 21:30
سلام
دقت کنید که با کدهای عادی معمول، تبدیل به/از string ها میتواند وابسته به تنظیمات بخش region در controlpanel ویندوز باشد، برای تغییر ایک رفتار میتوانید از formatprovider استفاده کنید.