PythonScript নীতি রানটাইম ত্রুটি সমস্যা সমাধান

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান
তথ্য

স্ক্রিপ্ট মূল্যায়ন ব্যর্থ হয়েছে৷

ত্রুটি কোড

steps.script.ScriptEvaluationFailed

ত্রুটি প্রতিক্রিয়া বডি

{
    "fault": {
        "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: error_type: error_description"",
        "detail": {
            "errorcode": "steps.script.ScriptEvaluationFailed"
        }
    }
}

সম্ভাব্য কারণ

পাইথন স্ক্রিপ্ট নীতি বিভিন্ন ধরনের ScriptEvaluationFailed ত্রুটি নিক্ষেপ করতে পারে। নীচের বিভাগগুলি এই ত্রুটিগুলির কিছু বর্ণনা করে৷

নামের ত্রুটি

যদি পাইথনস্ক্রিপ্ট কোডে একটি ভেরিয়েবল থাকে যা রেফারেন্স করা হয় বা সংজ্ঞায়িত না করেই পরিচালিত হয়, তাহলে আপনি নাম ত্রুটি পাবেন।

ত্রুটি প্রতিক্রিয়া বডি

{
    "fault": {
        "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: "NameError: variable_name is not defined"",
        "detail": {
            "errorcode": "steps.script.ScriptEvaluationFailed"
        }
    }
}

উদাহরণ ত্রুটি প্রতিক্রিয়া বডি

{
    "fault": {
        "faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined"",
        "detail": {
            "errorcode": "steps.script.ScriptEvaluationFailed"
        }
    }
}

রোগ নির্ণয়

  1. ত্রুটি প্রতিক্রিয়ার ফল্টস্ট্রিং উপাদান থেকে পাইথনস্ক্রিপ্ট নীতি এবং অনির্ধারিত পরিবর্তনশীল নাম সনাক্ত করুন। উদাহরণস্বরূপ, নিম্নলিখিত ফল্টস্ট্রিং-এ, PythonScript নামটি myscript.py এবং অনির্ধারিত ভেরিয়েবলের নাম হল num3 :

    "faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined""
    
  2. উপরের ধাপ # 1 এ চিহ্নিত PythonScript সোর্স ফাইলটি পরীক্ষা করুন এবং উপরের ধাপ # 1 এ চিহ্নিত অনির্ধারিত ভেরিয়েবলটি উল্লেখ করা হচ্ছে কিনা তা যাচাই করুন। উদাহরণস্বরূপ, নিম্নলিখিত PythonScript কোডটি অনির্ধারিত ভেরিয়েবল num3 উল্লেখ করে, যা ফল্টস্ট্রিং এর সাথে মেলে:

    num1 = 1.5
    num2 = 6.3
    sum = float(num1) + float(num3)
    print('The sum of {0} and {1} is {2}'.format(num1, num3 sum))
    
  3. PythonScript কোডের মধ্যে নির্দিষ্ট ভেরিয়েবলটি সংজ্ঞায়িত করা হয়েছে কিনা তা পরীক্ষা করুন। যদি ভেরিয়েবলটি সংজ্ঞায়িত না হয়, তবে এটি ত্রুটির কারণ।

    উপরে দেখানো উদাহরণ স্ক্রিপ্টে, ভেরিয়েবল num3 অনির্ধারিত। অতএব, আপনি নীচের ত্রুটি পাবেন:

    "faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined""
    

রেজোলিউশন

PythonScript কোডে উল্লেখ করা সমস্ত ভেরিয়েবল সঠিকভাবে সংজ্ঞায়িত করা হয়েছে তা নিশ্চিত করুন।

উপরে দেখানো পাইথনস্ক্রিপ্টের উদাহরণ দিয়ে সমস্যাটি সমাধান করতে, ভেরিয়েবল num3 ব্যবহার করার আগে সংজ্ঞায়িত করুন। যেমন:

num1 = 1.5
num2 = 6.3
num3 = 8.7
sum = float(num1) + float(num3)
print('The sum of {0} and {1} is {2}'.format(num1, num3, sum))

জিরোডিভিশন ত্রুটি

এই ত্রুটিটি উত্থাপিত হয় যখন একটি বিভাগ বা মডিউল অপারেশনের দ্বিতীয় আর্গুমেন্ট শূন্য হয়।

ত্রুটি প্রতিক্রিয়া বডি


{
    "fault": {
        "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: "ZeroDivisionError: reason_for_error"",
        "detail": {
            "errorcode": "steps.script.ScriptEvaluationFailed"
        }
    }
}

উদাহরণ ত্রুটি প্রতিক্রিয়া বডি


{
    "fault": {
        "faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero"",
        "detail": {
            "errorcode": "steps.script.ScriptEvaluationFailed"
        }
    }
}

রোগ নির্ণয়

  1. PythonScript নীতির নাম এবং ত্রুটি প্রতিক্রিয়ার ফল্টস্ট্রিং উপাদান থেকে ব্যর্থতার কারণ সনাক্ত করুন। উদাহরণস্বরূপ, নিম্নলিখিত ফল্টস্ট্রিং-এ, PythonScript নামটি myscript.py এবং ব্যর্থতার কারণ হল integer division or modulo by zero :

    "faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero""
    
  2. উপরের ধাপ # 1 এ চিহ্নিত পাইথনস্ক্রিপ্ট সোর্স ফাইলটি পরীক্ষা করুন এবং শূন্য দ্বারা একটি বিভাগ বা মডুলাস অপারেশন আছে কিনা তা যাচাই করুন। উদাহরণস্বরূপ, নিম্নলিখিত PythonScript কোডটি শূন্য দ্বারা বিভাজন সম্পাদন করে, যা ফল্টস্ট্রিং-এ যা আছে তার সাথে মেলে:

    a = 0
    b = 5
    c = b/a
    print c
    

    উপরে দেখানো উদাহরণ স্ক্রিপ্টে, কারণ বিভাগ অপারেশনের দ্বিতীয় যুক্তিটি শূন্য, আপনি নিম্নলিখিত ত্রুটিটি পান:

    "faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero""
    

রেজোলিউশন

নিশ্চিত করুন যে একটি বিভাগ বা মডিউল অপারেশনের দ্বিতীয় আর্গুমেন্টটি পাইথনস্ক্রিপ্টে শূন্য নয়।

উপরে দেখানো পাইথনস্ক্রিপ্টের উদাহরণ দিয়ে সমস্যাটি সমাধান করতে, একটি বিভাগ বা মডুলো অপারেশনের দ্বিতীয় আর্গুমেন্ট হিসাবে একটি অ-শূন্য মান ব্যবহার করুন। যেমন:

a = 3
b = 5
c = b/a
print c

আরো তথ্য

উপরে বর্ণিত কারণগুলি ছাড়াও steps.script.ScriptEvaluationFailed ত্রুটির আরও অনেক সম্ভাব্য কারণ রয়েছে। আরও তথ্যের জন্য অনুগ্রহ করে অফিসিয়াল পাইথন ডকুমেন্টেশন দেখুন।