اذهب إلى المحتوى

السؤال

نشر

السلام عليكم

عند معالجه الخطاء فيه الكود ده بيحصل خطاء وهو ان عندي لو المتغير age ده عباره عن نص فا  بيظهر الرساله ومش بيكمل بعدي كده ومش بيظهر المتغير password فا اي احل المكشله ده ؟

وده الكود

try:
    age = int(input("Age: "))
    password = int(input("Password: "))

except BaseException as message:
    print(f"Error message: {message}")    

 

Recommended Posts

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته .

إن جزء try و except في جميع لغات البرمجة تقوم بمحاولة تنفيذ الكود بداخل جزء try وإذا حدث خطأ في سطر بداخل جزء try فلن يتم إكمال باقي الأكواد بداخل try وسيتم تنفيذ جزء except مباشرة .

لا أعرف لماذا إذا حدث خطأ في ال age تريد تكملة البرنامج و لكن لا مشكلة الحل هو وضع كل سطر في جزء try و except هكذا :

try:
    age = int(input("Age: "))

except BaseException as message:
    print(f"Error message: {message}") 

try:
    password = int(input("Password: "))

except BaseException as message:
    print(f"Error message: {message}")  

 

  • 0
نشر

كما أخبرك مجمد فالمشكلة الأساسية تكمن في محاولة تحويل قيمة نصية (مثل "25") إلى عدد صحيح (integer) باستخدام الدالة int().بمعنى إذا أدخل المستخدم قيمة نصية غير رقمية، فإن الدالة int() ستؤدي إلى خطأ من نوع ValueError. و بمجرد حدوث أي خطأ داخل كتلة try, يتم تنفيذ كتلة except ثم يتوقف البرنامج عن تنفيذ أي كود بعد ذلك.

ولكن لتغيير هذا السلوك حسب ما تريد يمكنك استخدام حلقة while للتحقق من صحة الإدخال وتكرار طلب الإدخال حتى يقدم المستخدم قيمة صحيحة.كما يلي

while True:
    try:
        age = int(input("Age: "))
        password = int(input("Password: "))
        break  # إذا تم إدخال قيم صحيحة، نخرج من الحلقة
    except ValueError as message:
        print(f"Error message: {message}")

# بعد التأكد من صحة الإدخال، يمكنك استخدام قيم المتغيرين
print("Your age is:", age)
print("Your password is:", password)

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...