Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
ScriptEvaluationFailed
Kod błędu
steps.script.ScriptEvaluationFailed
Treść odpowiedzi o błędzie
{ "fault": { "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: error_type: error_description"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Możliwe przyczyny
Zasada Python Script może wywoływać kilka różnych typów błędów ScriptEvaluationFailed
. Niektóre z tych błędów znajdziesz w sekcjach poniżej.
NameError
Jeśli w kodzie PythonScript znajduje się zmienna, która jest przywoływana lub obsługiwana bez jej zdefiniowania, wystąpi błąd „Nazwa”.
Treść odpowiedzi o błędzie
{ "fault": { "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: "NameError: variable_name is not defined"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Przykładowa treść odpowiedzi na błąd
{ "fault": { "faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Diagnostyka
Zidentyfikuj zasadę PythonScript i niezdefiniowaną nazwę zmiennej z elementu faultstring odpowiedzi błędu. Na przykład w tym ciągu znaków nazwa skryptu Pythona to
myscript.py
, a niezdefiniowana nazwa zmiennej to num3:"faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined""
Sprawdź plik źródłowy PythonScript określony w kroku 1 powyżej i sprawdź, czy odwołuje się do niezdefiniowanej zmiennej określonej w kroku 1 powyżej. Na przykład ten kod w języku PythonScript odwołuje się do niezdefiniowanej zmiennej num3, która odpowiada ciągowi błędów:
num1 = 1.5 num2 = 6.3 sum = float(num1) + float(num3) print('The sum of {0} and {1} is {2}'.format(num1, num3 sum))
Sprawdź, czy konkretna zmienna jest zdefiniowana w kodzie PythonScript. Jeśli zmienna nie jest zdefiniowana, to jest przyczyną błędu.
W przykładowym skrypcie pokazanym powyżej zmienna num3 jest niezdefiniowana. Pojawi się ten błąd:
"faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined""
Rozdzielczość
Sprawdź, czy wszystkie zmienne, do których odwołuje się kod PythonScript, są prawidłowo zdefiniowane.
Aby rozwiązać problem z przykładowym skryptem PythonScript pokazanym powyżej, zdefiniuj zmienną num3 przed jej użyciem. Na przykład:
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))
ZeroDivisionError
Ten błąd występuje, gdy drugi argument operacji dzielenia lub modulo wynosi 0.
Treść odpowiedzi o błędzie
{ "fault": { "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: "ZeroDivisionError: reason_for_error"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Przykładowa treść odpowiedzi na błąd
{ "fault": { "faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Diagnostyka
Zidentyfikuj nazwę zasady PythonScript i przyczynę niepowodzenia w elemencie faultstring odpowiedzi błędu. Na przykład w tym ciągu błędów nazwa skryptu Pythona to
myscript.py
, a przyczyna błędu jestinteger division or modulo by zero
:"faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero""
Sprawdź plik źródłowy w języku PythonScript określony w kroku 1 powyżej i sprawdź, czy występuje operacja podziału lub modułu na 0. Na przykład poniższy kod w języku PythonScript wykonuje dzielenie przez 0, co jest zgodne z treścią ciągu błędów:
a = 0 b = 5 c = b/a print c
W przykładowym skrypcie powyżej, ponieważ drugi argument operacji dzielenia wynosi 0, pojawia się następujący błąd:
"faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero""
Rozdzielczość
Sprawdź, czy w Pythonie drugi argument dzielenia lub operacji modulo ma wartość inną niż 0.
Aby rozwiązać ten problem z przykładowym skryptem PythonScript przedstawionym powyżej, użyj wartości innej niż zero jako drugiego argumentu operacji dzielenia lub operacji modulo. Na przykład:
a = 3 b = 5 c = b/a print c
Więcej informacji
Oprócz podanych wyżej przyczyn błędu steps.script.ScriptEvaluationFailed
może być wiele. Więcej informacji znajdziesz w oficjalnej dokumentacji Pythona.