2008-09-29 17 views
8

Czy jest jakiś sposób w Pythonie, aby określić, jakie wyjątki może podnieść funkcja (wbudowana)? Na przykład dokumentacja (http://docs.python.org/lib/built-in-funcs.html) dla wbudowanych int (ów) nie mówi nic o tym, że może wywołać wartość ValueError, jeśli s nie jest poprawnie sformatowanym int.Jakie wyjątki może podnieść funkcja Pythona?


To jest duplikatem Does re.compile() or any given Python library call throw an exception?

+2

Hej, ktoś ponownie to otwiera. To nie jest duplikat. – epochwolf

Odpowiedz

0

ja nie znam żadnego ostatecznego źródła, niezależnie od źródła.

7

Jedynym sposobem na stwierdzenie, jakie wyjątki mogą coś wzbudzić, jest przejrzenie dokumentacji. Fakt, że dokumentacja int() nie mówi, że może wywołać wartość ValueError, jest błędem w dokumentacji, ale łatwo wyjaśnić, że ValueError jest dokładnie w tym celu, i że jest czymś "wszyscy wiedzą".

Jednak aby to zrozumieć, dokumentacja jest jedynym sposobem na określenie wyjątków, na które należy zwrócić uwagę. w rzeczywistości każda funkcja może potencjalnie wywołać każdy wyjątek, nawet jeśli dzieje się tak tylko dlatego, że sygnały mogą przybyć, a programy obsługi sygnału mogą zgłaszać wyjątki. Nie powinieneś jednak przewidywać ani obsługiwać tych błędów; powinieneś po prostu obsłużyć błędy, których się spodziewasz.

Powiązane problemy