Size: a a a

Хирьянов Т.Ф., Практика программирования на Python 3 (2019)

2021 February 22

БГ

Бензофуран Гетероцик... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
BrokenPipe же подкласс OSEroor
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Бензофуран Гетероцикл
BrokenPipe же подкласс OSEroor
Не знал. То есть мне brokenpipeerror не нужен что ли?)
источник

БГ

Бензофуран Гетероцик... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Я не уверен что брокенпайп это чилд OSError
источник

А

Айван in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
🚲 Oleh Kopyl UI/UX designer
Не знал. То есть мне brokenpipeerror не нужен что ли?)
Если подкласс, тогда да. В идеале, это всё либа должна делать: ловить подобного рода ошибке где могут произойти, и вместо них поднимать свои, с нормальной иерархией. Тогда можно было бы сделать
except GoggleLiba:
   ...
источник

БГ

Бензофуран Гетероцик... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
🚲 Oleh Kopyl UI/UX designer
Аж столько нужно обработать исключений чтобы вызвать выгрузку файла из стандартной гугловской либы.

Что не день, то залет ошибок:

https://pastebin.com/cTndxv4T

Даже в разработке оберток над апи гугл успел отличиться с негативной стороны.
А ещё можно ошибки перехватывать по одной внутри вызываемых функций
источник

БГ

Бензофуран Гетероцик... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Удоли🌚
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
источник

БГ

Бензофуран Гетероцик... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Language:
py3


Source:
print(issubclass(BrokenPipeError, OSError))


Result:
True
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Бензофуран Гетероцикл
Language:
py3


Source:
print(issubclass(BrokenPipeError, OSError))


Result:
True
Ого, круто, спасибо
источник

БГ

Бензофуран Гетероцик... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Бензофуран Гетероцикл
Language:
py3


Source:
print(issubclass(BrokenPipeError, OSError))


Result:
True
Перехватывая OSError ты можешь не париться о брокенпайпе
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Бензофуран Гетероцикл
Перехватывая OSError ты можешь не париться о брокенпайпе
Щас чекну
источник

БГ

Бензофуран Гетероцик... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
🚲 Oleh Kopyl UI/UX designer
Аж столько нужно обработать исключений чтобы вызвать выгрузку файла из стандартной гугловской либы.

Что не день, то залет ошибок:

https://pastebin.com/cTndxv4T

Даже в разработке оберток над апи гугл успел отличиться с негативной стороны.
Language:
py3


Source:
from socket import timeout
print(issubclass(timeout, OSError))


Result:
True
источник

БГ

Бензофуран Гетероцик... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Бензофуран Гетероцикл
Language:
py3


Source:
from socket import timeout
print(issubclass(timeout, OSError))


Result:
True
И таймауты тоже подкласс OSError'а
Их тоже можно не указывать если перехватываешь осеррор
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Language:
python3


Source:
import time

try:
   for x in range(10):
       print(x)
       if x == 6:
           raise BrokenPipeError
       time.sleep(0.1)
except OSError:
   print("The may have been BrokenPipeError")


Result:
0
1
2
3
4
5
6
The may have been BrokenPipeError
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
🚲 Oleh Kopyl UI/UX designer
Language:
python3


Source:
import time

try:
   for x in range(10):
       print(x)
       if x == 6:
           raise BrokenPipeError
       time.sleep(0.1)
except OSError:
   print("The may have been BrokenPipeError")


Result:
0
1
2
3
4
5
6
The may have been BrokenPipeError
Language:
python3


Source:
import socket
import time

try:
   for x in range(10):
       print(x)
       if x == 6:
           raise socket.timeout
       time.sleep(0.1)
except OSError:
   print("The may have been socket.timeout")


Result:
0
1
2
3
4
5
6
The may have been socket.timeout
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Бензофуран Гетероцикл
И таймауты тоже подкласс OSError'а
Их тоже можно не указывать если перехватываешь осеррор
Прикол, не знал.

А где об этом можно почитать? не нашел что-то
источник

БГ

Бензофуран Гетероцик... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
🚲 Oleh Kopyl UI/UX designer
Прикол, не знал.

А где об этом можно почитать? не нашел что-то
Это механизм работы исключений в Python
источник

БГ

Бензофуран Гетероцик... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Если с английским ок то можешь почитать вот здесь лучший курс по Python:
docs.python.org/tutorial 👌
источник

А

Айван in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
А если не ок, тогда...
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Бензофуран Гетероцикл
Если с английским ок то можешь почитать вот здесь лучший курс по Python:
docs.python.org/tutorial 👌
А где там конкретно инфа о том, что ошибки по сокетам наследуют OSError?
источник