Найти - Пользователи
Полная версия: исключения
Начало » Python для новичков » исключения
1
creator
в общем, только начал изучать python.
сут в следующем, например, есть на php такой код
if($this->id == 0)
                throw new Exception('ERROR: your ID is empty');
            elseif($this->balance == 0)
                throw new Exception('ERROR: your BALANCE is empty');
            elseif(mb_strlen($this->name) == 0 or $this->name == '')
                throw new Exception('ERROR: your NAME is empty');
            elseif(mb_strlen($this->name) > 100)
                throw new Exception('ERROR: your NAME is longer than 100 symbols');
то есть обычная обработка исключений.

вопрос, как можно подобное реализовать на python?
о есть, я прикинул так:
if os.path.exists('users/' + str(self.uid) + '.txt'):
            try:
                #а что тут?
            except:
                return 'ERROR: file with ' + str(self.uid) + ' id is already exists'
        elif self.balance < 0:
            try:
                #а что тут?
            except:
                return 'ERROR: your BALANCE is less than 0'
или я неправильно мыслю?поскажите
fata1ex
Вы плохо представляете себе, что такое _обработка_ исключений. throw в питоне называется raise.
Например:
raise ValueError
raise TypeError('String expected')

http://docs.python.org/tutorial/errors.html
creator
написал я так
try:
            if os.path.exists('users/' + str(self.uid) + '.txt'):
                raise NameError, 'ERROR: file with ' + str(self.uid) + ' id is already exists'
            elif self.balance < 0:
                raise ValueError, 'ERROR: your BALANCE is less than 0'
            else:
                return self.saveData()
        except (NameError, ValueError):
            raise

вроде выводит исключение, но перед ним идет такая трассировка
Traceback (most recent call last):
   File "file.py", line 23, in func
    raise ValueError, 'ERROR: your BALANCE is less than 0'
EBFE
просто
if os.path.exists('users/' + str(self.uid) + '.txt'):
    raise NameError, 'ERROR: file with ' + str(self.uid) + ' id is already exists'
elif self.balance < 0:
    raise ValueError, 'ERROR: your BALANCE is less than 0'
else:
    return self.saveData()
без try except.
Вообще-то fata1ex привел ссылку. Можно вместо ссылки книжку почитать - хотя конечно
“Two hours of trial and error can save ten minutes of manual reading”
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB