لإصلاح هذا البحث عن بناء جملة غير صحيح
- إذا كان Try-Catch لا يعمل على PowerShell ، فيجب عليك التحقق من بناء الجملة وقيم إجراءات الخطأ غير الصحيحة.
- سيشرح هذا الدليل الطرق المختلفة لحل المشكلة.

Xالتثبيت عن طريق النقر فوق ملف التنزيل
- قم بتنزيل Restoro PC Repair Tool التي تأتي مع التقنيات الحاصلة على براءة اختراع (براءة اختراع متاحة هنا).
- انقر ابدأ المسح للعثور على مشكلات Windows التي قد تتسبب في حدوث مشكلات بجهاز الكمبيوتر.
- انقر إصلاح الكل لإصلاح المشكلات التي تؤثر على أمان الكمبيوتر وأدائه.
- تم تنزيل Restoro بواسطة 0 القراء هذا الشهر.
بيان Try-Catch بتنسيق بوويرشيل يعالج الأخطاء والاستثناءات في التعليمات البرمجية الخاصة بك. إذا كان Try-Catch لا يعمل كما هو مستثنى على PowerShell ، فقد يكون الأمر محبطًا.
في هذا الدليل ، سنغطي جميع الطرق لإصلاح المشكلة جنبًا إلى جنب مع الأسباب المحتملة للمشكلة. لنبدأ!
ما الذي يسبب مشكلة عدم عمل Try-Catch في PowerShell؟
قد تكون هناك أسباب مختلفة لعدم عمل البيان على PowerShell. فيما يلي بعض أكثرها شيوعًا:
- تعيين الافتراضي ErrorAction - إذا كان تم تعيين ErrorAction على متابعة، ثم لن تعمل Try-Catch كما هو متوقع.
- أخطاء في بناء الجملة - إذا كانت الصيغة المستخدمة غير صحيحة ، أو التنسيق غير صحيح ، أو أنه يفتقد إلى كلمات رئيسية ، فلن يعمل Try-Catch.
- Cmdlet أو سلوك الوظيفة - تأتي بعض الوظائف وأوامر cmdlets مع سلوكها في معالجة الأخطاء ، والذي قد لا يكون متوافقًا مع Try-Catch.
- منطق أو استخدام غير صحيح للمتغيرات - إذا كان هناك استخدام غير مناسب لـ المتغيرات أو منطق غير صحيح ، فإن Try-Catch لن يعمل.
ماذا يمكنني أن أفعل إذا كان Try-Catch لا يعمل على PowerShell؟
1. تحقق من بناء الجملة
- أولاً ، تحتاج إلى التحقق مما إذا كنت قد استخدمت البنية الصحيحة لإصدار PowerShell الذي تستخدمه.
- بعد ذلك ، تحقق من أنك قد وضعت كتل Try and Catch في التسلسل الصحيح.
- تم ذكر البنية الأساسية لـ Try-Catch أدناه. استبدل رمز # للتشغيل هنا بالرمز و # خطأ في معالجة الكود هنا برمز معالجة الخطأ:

يحاول {
# رمز للتشغيل هنا
}
يمسك {
# خطأ في معالجة الكود هنا
}
2. تحقق مما إذا كنت تقوم بتعويض خطأ معين
تحتاج إلى التحقق مما إذا كنت تقوم بتعويض أخطاء معينة تريد معالجتها وليس كل الأخطاء. اتبع هذه الخطوات لفعل الشيء نفسه:
- اضغط على
شبابيك
نوع المفتاح بوويرشيل ، وانقر تشغيل كمسؤول. - لتعويض خطأ ما ، تحتاج إلى استخدام الامتداد $ متغير في كتلة Catch للوصول إلى معلومات حول الخطأ الذي تم إلقاؤه. دعنا نتحقق من المثال نفسه لفهم أفضل:
يحاول {
Get-ChildItem -Path C: \ DoesNotExist
}
يمسك {
إذا ($ _. استثناء. GetType (). Name -eq "DirectoryNotFoundException") {
اكتب - إخراج "الدليل غير موجود."
}
آخر {
رمي $ _. استثناء |
}
}
3. قم بتعيين قيمة ErrorAction
القيمة الافتراضية لـ ErrorAction هي متابعة ؛ ومع ذلك ، لكي تعمل Try-Catch ، تحتاج إلى تعيين قيمة ErrorAction على Stop. لكي تفعل هذا، اتبع هذه الخطوات:
- يفتح بوويرشيل كمسؤول.
- تحتاج إلى استخدام الأمر Set-StrictMode cmdlet أو معلمة ErrorAction على أوامر cmdlets الفردية. لفهمها بشكل أفضل ، دعونا نلقي نظرة على مثال:

يحاول {
Get-ChildItem -Path C: \ DoesNotExist -ErrorAction Stop
}
يمسك {
كتابة-إخراج $ _. استثناء. رسالة
}
- إليك كيفية استرداد مفتاح BitLocker الخاص بك من OneDrive
- كيفية استخدام Phone Link لـ iPhone على Windows 11
- دافينشي يحل الاستخدام العالي لوحدة المعالجة المركزية: كيفية تقليله
4. استخدم نوع الاستثناء الصحيح

من المهم استخدام الاستثناءات الصحيحة عند استخدام Try-Catch ، حيث يمكنها فقط التعامل مع استثناءات النظام. نوع الاستثناء. إذا كنت قد استخدمت غير النظام. استثناءات الأخطاء ، ثم لن تعمل Try-Catch.
أما بالنسبة لغير النظام. استثناء ، تحتاج إلى استخدام آلية معالجة الأخطاء في إطار عمل NET "أو التقاط الخطأ.
5. تجنب إنهاء البرنامج النصي
إذا تم إنهاء البرنامج النصي الخاص بك قبل الوصول إلى كتلة Catch ، فلن تحصل Try-Cach على فرصة للتعامل مع الخطأ. لتجنب إنهاء البرنامج النصي ، اتبع الخطوات التالية:
- يطلق بوويرشيل مع حقوق المسؤول.
- أنت بحاجة إلى استخدام يكمل البيان بعد يمسك حاجز. دعونا نفهمها بمثال:

يحاول {
Get-ChildItem -Path C: \ DoesNotExist
}
يمسك {
كتابة-إخراج $ _. استثناء. رسالة
يكمل
}
6. استخدم المحاولة-الالتقاط-أخيرًا
إذا كانت عبارة Try-Catch لا تزال لا تعمل ، يمكنك استخدام بناء Try-Catch-Last بدلاً من ذلك. هذا يضمن أن التعليمات البرمجية الخاصة بك تعمل حتى الاكتمال ، حتى في حالة ظهور استثناء.
- يفتح بوويرشيل كمسؤول.
- اكتب الأمر بامتداد حاول الالتقاط أخيرا. فيما يلي مثال لفهم النص بشكل أفضل:

يحاول {
# رمزك هنا
}
قبض على [النظام. استثناء] {
# رمز التعامل مع الاستثناء هنا
}
أخيراً {
# تنظيف التعليمات البرمجية هنا
}
لذلك ، هذه هي الطرق التي يمكنك من خلالها حل مشكلة Try Catch التي لا تعمل على PowerShell. إذا كانت لديك أي أسئلة تتعلق بـ Try-Catch ، فيرجى ذكرها في قسم التعليقات أدناه. سنكون سعداء للمساعدة!
إذا كنت تريد معرفة كيفية إيقاف إغلاق PowerShell بعد تشغيل برنامج نصي ، يمكنك قراءة هذا.
هل ما زلت تواجه مشكلات؟ قم بإصلاحها باستخدام هذه الأداة:
برعاية
إذا لم تحل النصائح المذكورة أعلاه مشكلتك ، فقد يواجه جهاز الكمبيوتر الخاص بك مشكلات Windows أعمق. نوصي تنزيل أداة إصلاح الكمبيوتر (مصنفة بدرجة كبيرة على TrustPilot.com) للتعامل معها بسهولة. بعد التثبيت ، ما عليك سوى النقر فوق ملف ابدأ المسح زر ثم اضغط على إصلاح الكل.