Stai visualizzando la documentazione di Apigee Edge.
Vai alla
documentazione di Apigee X. informazioni
ScriptEvaluationFailed
Codice di errore
steps.script.ScriptEvaluationFailed
Corpo della risposta all'errore
{ "fault": { "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: error_type: error_description"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Possibili cause
Il criterio Python Script può generare diversi tipi di errori ScriptEvaluationFailed
. Alcuni di questi errori vengono descritti nelle sezioni seguenti.
NameError
Se nel codice PythonScript c'è una variabile a cui viene fatto riferimento o su cui viene eseguita l'operazione senza essere definita, viene visualizzato l'errore Nome.
Corpo della risposta all'errore
{ "fault": { "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: "NameError: variable_name is not defined"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Esempio di corpo della risposta di errore
{ "fault": { "faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Diagnostica
Identifica il criterio PythonScript e il nome della variabile non definita dall'elemento faultstring della risposta di errore. Ad esempio, nella seguente stringa di errore, il nome PythonScript è
myscript.py
e il nome della variabile non definita è num3:"faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined""
Esamina il file di origine PythonScript identificato nel passaggio 1 riportato sopra e verifica se viene fatto riferimento alla variabile non definita identificata nel passaggio 1 riportato sopra. Ad esempio, il seguente codice PythonScript fa riferimento alla variabile non definita num3, che corrisponde alla stringa di errore:
num1 = 1.5 num2 = 6.3 sum = float(num1) + float(num3) print('The sum of {0} and {1} is {2}'.format(num1, num3 sum))
Verifica se la variabile specifica è definita nel codice PythonScript. Se la variabile non è definita, è questo il motivo dell'errore.
Nello script di esempio mostrato sopra, la variabile num3 non è definita. Pertanto, verrà visualizzato il seguente errore:
"faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined""
Risoluzione
Assicurati che tutte le variabili a cui viene fatto riferimento nel codice PythonScript siano definite correttamente.
Per risolvere il problema con l'esempio PythonScript mostrato sopra, definisci la variabile num3 prima di utilizzarla. Ad esempio:
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
Questo errore viene generato quando il secondo argomento di una divisione o di un'operazione modulo è zero.
Corpo della risposta all'errore
{ "fault": { "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: "ZeroDivisionError: reason_for_error"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Esempio di corpo della risposta di errore
{ "fault": { "faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Diagnostica
Identifica il nome del criterio PythonScript e il motivo dell'errore dall'elemento stringa di errore della risposta di errore. Ad esempio, nella seguente stringa di errore, il nome PythonScript è
myscript.py
e il motivo dell'errore èinteger division or modulo by zero
:"faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero""
Esamina il file di origine PythonScript identificato nel passaggio 1 riportato sopra e verifica se è presente un'operazione di divisione o modulo pari a zero. Ad esempio, il seguente codice PythonScript esegue la divisione per zero, che corrisponde al contenuto della stringa di errore:
a = 0 b = 5 c = b/a print c
Nello script di esempio mostrato sopra, poiché il secondo argomento dell'operazione di divisione è zero, viene visualizzato il seguente errore:
"faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero""
Risoluzione
Assicurati che il secondo argomento di una divisione o di un'operazione modulo non sia zero in PythonScript.
Per risolvere il problema relativo all'esempio PythonScript mostrato sopra, utilizza un valore diverso da zero come secondo argomento di una divisione o di un'operazione modulo. Ad esempio:
a = 3 b = 5 c = b/a print c
Ulteriori informazioni
Esistono molte altre possibili cause dell'errore steps.script.ScriptEvaluationFailed
, oltre a quelle descritte sopra. Fai riferimento alla documentazione ufficiale di Python per ulteriori informazioni.