Тест по основам программирования на Python

Тема 8: Исключения, обработка ошибок

2

Что делает 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