Tratamento de Erros no Sage
link da referência: https://docs.python.org/3/library/exceptions.html#RuntimeError
Error in lines 1-1
Traceback (most recent call last):
File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 957, in execute
exec compile(block+'\n', '', 'single') in namespace, locals
File "", line 1, in <module>
NameError: name 'tg' is not defined
Error in lines 1-1
Traceback (most recent call last):
File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 957, in execute
exec compile(block+'\n', '', 'single') in namespace, locals
File "", line 1, in <module>
NameError: name 'k' is not defined
Error in lines 1-1
Traceback (most recent call last):
File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 957, in execute
exec compile(block+'\n', '', 'single') in namespace, locals
File "", line 1, in <module>
IndexError: list index out of range
Error in lines 1-1
Traceback (most recent call last):
File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 957, in execute
exec compile(block+'\n', '', 'single') in namespace, locals
File "", line 1, in <module>
AttributeError: 'list' object has no attribute 'union'
Error in lines 1-1
Traceback (most recent call last):
File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 957, in execute
exec compile(block+'\n', '', 'single') in namespace, locals
File "", line 1, in <module>
File "sage/rings/integer.pyx", line 1843, in sage.rings.integer.Integer.__div__ (/projects/sage/sage-7.3/src/build/cythonized/sage/rings/integer.c:12742)
raise ZeroDivisionError("rational division by zero")
ZeroDivisionError: rational division by zero
Error in lines 0-1
Traceback (most recent call last):
File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 957, in execute
exec compile(block+'\n', '', 'single') in namespace, locals
File "<string>", line 1
[Integer(1),Integer(2),Integer(3))
^
SyntaxError: invalid syntax
Error in lines 1-3
Traceback (most recent call last):
File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 957, in execute
exec compile(block+'\n', '', 'single') in namespace, locals
File "<string>", line 3
print i
^
IndentationError: expected an indented block
Error in lines 1-1
Traceback (most recent call last):
File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 957, in execute
exec compile(block+'\n', '', 'single') in namespace, locals
File "", line 1, in <module>
TypeError: can only concatenate list (not "tuple") to list
Error in lines 1-2
Traceback (most recent call last):
File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 957, in execute
exec compile(block+'\n', '', 'single') in namespace, locals
File "", line 1, in <module>
TypeError: 'sage.symbolic.expression.Expression' object is not iterable
Error in lines 1-1
Traceback (most recent call last):
File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 957, in execute
exec compile(block+'\n', '', 'single') in namespace, locals
File "", line 1, in <module>
File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/smc_sagews/sage_salvus.py", line 3391, in load
exec 'salvus.namespace["%s"] = sage.structure.sage_object.load(*__args, **__kwds)'%t in salvus.namespace, {'__args':other_args, '__kwds':kwds}
File "<string>", line 1, in <module>
File "sage/structure/sage_object.pyx", line 992, in sage.structure.sage_object.load (/projects/sage/sage-7.3/src/build/cythonized/sage/structure/sage_object.c:11186)
sage.repl.load.load(filename, globals())
File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/sage/repl/load.py", line 263, in load
raise IOError('did not find file %r to load or attach' % filename)
IOError: did not find file 'texto.py' to load or attach
Error in lines 1-1
Traceback (most recent call last):
File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 957, in execute
exec compile(block+'\n', '', 'single') in namespace, locals
File "", line 1, in <module>
File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/sage/symbolic/assumptions.py", line 515, in assume
x.assume()
File "sage/symbolic/expression.pyx", line 1743, in sage.symbolic.expression.Expression.assume (/projects/sage/sage-7.3/src/build/cythonized/sage/symbolic/expression.cpp:12576)
raise ValueError("Assumption is %s" % str(s._sage_()[0]))
ValueError: Assumption is inconsistent
Error in lines 1-1
Traceback (most recent call last):
File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 957, in execute
exec compile(block+'\n', '', 'single') in namespace, locals
File "", line 1, in <module>
File "sage/structure/element.pyx", line 1896, in sage.structure.element.RingElement.__floordiv__ (/projects/sage/sage-7.3/src/build/cythonized/sage/structure/element.c:16647)
return coercion_model.bin_op(self, right, floordiv)
File "sage/structure/coerce.pyx", line 1043, in sage.structure.coerce.CoercionModel_cache_maps.bin_op (/projects/sage/sage-7.3/src/build/cythonized/sage/structure/coerce.c:8958)
raise
File "sage/structure/coerce.pyx", line 1039, in sage.structure.coerce.CoercionModel_cache_maps.bin_op (/projects/sage/sage-7.3/src/build/cythonized/sage/structure/coerce.c:8896)
return PyObject_CallObject(op, xy)
File "sage/structure/element.pyx", line 1895, in sage.structure.element.RingElement.__floordiv__ (/projects/sage/sage-7.3/src/build/cythonized/sage/structure/element.c:16622)
return (<RingElement>self)._floordiv_(right)
File "sage/structure/element.pyx", line 1908, in sage.structure.element.RingElement._floordiv_ (/projects/sage/sage-7.3/src/build/cythonized/sage/structure/element.c:16756)
raise TypeError(arith_error_message(self, right, floordiv))
TypeError: unsupported operand parent(s) for '//': 'Real Field with 53 bits of precision' and 'Real Field with 53 bits of precision'
Error in lines 1-1
Traceback (most recent call last):
File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 957, in execute
exec compile(block+'\n', '', 'single') in namespace, locals
File "", line 1, in <module>
File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/smc_sagews/sage_salvus.py", line 2922, in var
return var0(*args, **kwds)
File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/smc_sagews/sage_salvus.py", line 2884, in var0
v = sage.all.SR.var(name, **kwds)
File "sage/symbolic/ring.pyx", line 759, in sage.symbolic.ring.SymbolicRing.var (/projects/sage/sage-7.3/src/build/cythonized/sage/symbolic/ring.cpp:9295)
raise ValueError('The name "'+s+'" is not a valid Python identifier.')
ValueError: The name "4" is not a valid Python identifier.
Error in lines 2-2
Traceback (most recent call last):
File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 957, in execute
exec compile(block+'\n', '', 'single') in namespace, locals
File "<string>", line 1
for i in x:
^
SyntaxError: unexpected EOF while parsing
** Tratando Exeções **
-6/5 -> -5/6
-4/5 -> -5/4
-2/5 -> -5/2
0 ->
Error in lines 2-3
Traceback (most recent call last):
File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 957, in execute
exec compile(block+'\n', '', 'single') in namespace, locals
File "", line 2, in <module>
File "sage/rings/integer.pyx", line 1849, in sage.rings.integer.Integer.__div__ (/projects/sage/sage-7.3/src/build/cythonized/sage/rings/integer.c:12830)
raise ZeroDivisionError("rational division by zero")
ZeroDivisionError: rational division by zero
A interrupção de uma rotina por erro de exceção pode ser bastante inconviniênte. Por exemplo, imagine que um pesquisador necessite avaliar o inverso multiplicativo de valores contidos em uma certa lista de dados obtida atráves de um processo qualquer que inadivertidamente gerou valores iguais a zero. É natural que o laço a seguir seja interropido pela exceção quando encontra o valor :
-6/5 -> -5/6
-4/5 -> -5/4
-2/5 -> -5/2
0 ->
Error in lines 2-3
Traceback (most recent call last):
File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 957, in execute
exec compile(block+'\n', '', 'single') in namespace, locals
File "", line 2, in <module>
File "sage/rings/integer.pyx", line 1849, in sage.rings.integer.Integer.__div__ (/projects/sage/sage-7.3/src/build/cythonized/sage/rings/integer.c:12830)
raise ZeroDivisionError("rational division by zero")
ZeroDivisionError: rational division by zero
Sage possui a estutura permite que sua rotina seja executada até o final mesmo com a ocorrência de erros de exceção específicos. A sintaxe sintxe mais simplmes para o tratamento de erros de execeção é a que apresetamos a seguir:
-6/5 -> -5/6
-4/5 -> -5/4
-2/5 -> -5/2
0 -> divisao por zero
2/5 -> 5/2
4/5 -> 5/4
0 -> divisao por zero
3/10 -> 10/3
3/5 -> 5/3
9/10 -> 10/9
laço encerrado
n
1
2
Error in lines 1-1
Traceback (most recent call last):
File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 957, in execute
exec compile(block+'\n', '', 'single') in namespace, locals
File "", line 1, in <module>
ValueError: invalid literal for int() with base 10: '1.0'