Я реализую парсер для определенного для домена языка и хочу иметь возможность поднять SyntaxError. Как установить имя файла, lineno и offset при создании этого исключения?Python: raise SyntaxError with lineno
исключениеSyntaxError
Воспитанный, когда парсер встречает ошибку синтаксиса. Это может произойти в инструкции import в выражении exec в вызове встроенной функции eval() или input() или при чтении начального сценария или стандартного ввода (также в интерактивном режиме) .
Экземпляры этого класса имеют атрибуты filename, lineno, offset и текст для облегчения доступа к деталям. str() экземпляра исключения возвращает только сообщение.
Источник: https://docs.python.org/3.2/library/exceptions.html#SyntaxError
Если это не синтаксическая ошибка * Python *, возможно, вам лучше создать собственное исключение. – jonrsharpe
У меня была бы такая же проблема, что и подклассификация. Как бы то ни было, я * считаю, что SyntaxError является наиболее подходящим типом для синтаксической ошибки с именем файла и lineno - я бы просто изобрел его иначе. – golightlyb
Я не имею в виду подклассификацию 'SyntaxError', только ваш собственный подкласс' Exception' (например, 'class MySyntaxError (Exception):'), который вы можете добавить к любым атрибутам, которые вам нравятся. – jonrsharpe