Есть ли альтернатива для sys.exit() в python?
try:
x="blaabla"
y="nnlfa"
if x!=y:
sys.exit()
else:
print("Error!")
except Exception:
print(Exception)
Я не спрашиваю о том, почему выдает ошибку. Я знаю что это поднимает exceptions.SystemExit
, Мне было интересно, есть ли другой выход?
2 ответа
Некоторые подобные вопросы должны действительно сопровождаться реальным намерением, стоящим за кодом. Причина в том, что некоторые проблемы должны решаться совершенно по-другому. В теле сценария return
может быть использован для выхода из сценария. С другой точки зрения, вы можете просто запомнить ситуацию в переменной и реализовать требуемое поведение после try/except
построить. Или твой except
может проверить более явный вид исключения.
Код ниже показывает один вариант с переменной. Переменной присваивается функция (назначенная функция здесь не вызывается). Функция вызывается (через переменную) только после try/except
:
#!python3
import sys
def do_nothing():
print('Doing nothing.')
def my_exit():
print('sys.exit() to be called')
sys.exit()
fn = do_nothing # Notice that it is not called. The function is just
# given another name.
try:
x = "blaabla"
y = "nnlfa"
if x != y:
fn = my_exit # Here a different function is given the name fn.
# You can directly assign fn = sys.exit; the my_exit
# just adds the print to visualize.
else:
print("Error!")
except Exception:
print(Exception)
# Now the function is to be called. Or it is equivalent to calling do_nothing(),
# or it is equivalent to calling my_exit().
fn()
os._exit()
будет делать выход процесса низкого уровня без SystemExit
или обычная обработка выхода Python.