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