Как обработать исключение в Python?
try {} catch {}
try: ... except:
begin ... rescue
handle ... end
Как обработать исключение в Python?
try {} catch {}
try: ... except:
begin ... rescue
handle ... end
Как поймать только ZeroDivisionError?
except Exception:
except ZeroDivisionError:
except all:
except ZeroDiv:
Как получить текст ошибки?
e.text
str(e)
e.message
e.error()
Как поймать несколько исключений?
except (ValueError,ZeroDivisionError):
except ValueError|ZeroDivisionError:
except ValueError, ZeroDivisionError:
Что делает finally блок?
выполняется только при ошибке
выполняется всегда
завершает программу
создаёт исключение
Как сгенерировать исключение вручную?
raise Exception()
raise Exception()
throw Exception()
error Exception()
Как поймать любую ошибку?
except Error:
except Exception:
except all:
except:
Как вывести traceback ошибки?
print(traceback)
import traceback; traceback.print_exc()
traceback.show()
print_exc()
Как определить пользовательское исключение?
class MyError: Exception
class MyError(Exception): pass
exception MyError
MyError = Exception
Что делает assert x>0?
проверяет и исправляет x
вызывает AssertionError, если x≤0
ничего
выводит сообщение
Как обработать несколько блоков except?
except: except:
try: ... except ValueError: ... except TypeError:
try: ... except(ValueError,TypeError):
try: ... except all:
Как завершить программу с ошибкой?
exit(0)
sys.exit("Error")
quit()
stop()
Что делает raise без аргументов в except?
создаёт новый exception
повторно вызывает текущее исключение
завершает программу
игнорирует исключение
Как поймать ошибки при делении на ноль?
except Exception:
except ZeroDivisionError:
except DivideError:
except ArithmeticError:
Как выполнить код, даже если ошибка произошла?
except
try
finally
raise
Как проверить тип исключения?
e.type
type(e)
e.class
e.kind
Как получить имя исключения?
e.name
e.class.name
e.type
e.id
Что делает блок else в обработке ошибок?
выполняется всегда
выполняется, если исключения не произошло
выполняется только при ошибке
завершает программу
Как поймать все ошибки, кроме KeyboardInterrupt?
except Exception:
except KeyboardInterrupt:
except Exception as e: ... (KeyboardInterrupt отдельно)
except all:
Как выбросить исключение с сообщением "Error"?
throw "Error"
raise Exception("Error")
error("Error")
fail("Error")
Что делает try блок?
завершает программу
выполняет код, который может вызвать исключение
создаёт исключение
игнорирует ошибки
Как использовать несколько except для одного try?
except ValueError & TypeError:
except ValueError: ... except TypeError:
except(ValueError,TypeError):
except ValueError|TypeError:
Что выведет код:
python try: x = 1/0 except ZeroDivisionError: print("Error")
Error
0
Exception
1
Как поймать конкретное сообщение ошибки?
str(e)
str(e)
e.msg
e.text
Как завершить программу при возникновении ошибки?
raise
sys.exit("Error")
stop()
end()
Как отловить ошибки при работе с файлами?
except FileError:
except IOError:
except FileNotFound:
except Error:
Как безопасно открыть файл и обработать ошибки?
f = open("file")
try: f = open("file") ... except IOError: ... finally: f.close()
open("file") except
with open("file") except IOError:
Как проверить, поймана ли ошибка?
if error:
except ... as e:
try ... catch e
check(error)
Как записать traceback в файл?
traceback.save("file")
import traceback; traceback.print_exc(file=f)
print(traceback,file=f)
log(traceback)
Как пробросить исключение в другой блок?
throw e
raise
raise e
send(e)
Как обработать деление на ноль и другие ошибки отдельно?
except Exception:
except all:
except ZeroDivisionError: ... except Exception:
except ArithmeticError:
Как создать пользовательское исключение с сообщением?
class MyError: msg
class MyError(Exception): pass; raise MyError("message")
throw MyError("message")
raise Error("message")
Что делает except без указания ошибки?
ловит только Exception
ловит все исключения
не ловит ничего
вызывает ошибку
Как поймать несколько исключений и сохранить объект ошибки?
except (ValueError,TypeError): e
except (ValueError,TypeError) as e
except ValueError,TypeError as e
except ValueError|TypeError as e
Как использовать try/except с ресурсами?
try: f=open(...) finally:
with open(...) as f: try: ... except
open(...) try
f=open(...) except