Как написать это исключение в Python 2.6 - PullRequest
0 голосов
/ 26 октября 2010

Мне нужно написать исключение, что если строка равна нулю, то запускается это исключение. Как это написать?

Например. str = get_str ()

если get_str () возвращает None или ничего. Это должно вызвать исключение.

Ответы [ 2 ]

3 голосов
/ 26 октября 2010

В Python нет такой вещи, как "ничто".Есть что-то или нет.

if str is None:
  raise SomeException()
0 голосов
/ 26 октября 2010

возвращение None (то же самое, что ничего не возвращать явно) само по себе не является исключением. Если это должно быть исключением, get_str () должно вызвать это исключение, и вам решать, какова правильная причина и, следовательно, правильное исключение. Это может быть ValueError, TypeError или что-то нестандартное. Э.Г.

def get_str():
  x = some_complex_computation()
  if x is None:
    raise ValueError("because it's wrong!!")
  return x

Однако, часто None будет допустимым возвращаемым значением. Либо проверьте его явно, как только вы получите возвращаемое значение, как указывает Игнасио, либо просто используйте «duck typing»: предположим, вы вернули строку и позволили python провалиться, если это не так. Э.Г.

  str = get_str()
  if 'foo' in str:
    print "Looks okay!"

если str равен None, python завершится с ошибкой в ​​выражении 'in' с исключением TypeError.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...