Прочитав немного об исключениях Go, я начал задумываться, могу ли я (и должен) минимизировать использование исключений в своем коде Python.
Статья: https://dave.cheney.net/2012/01/18/why-go-gets-exceptions-right
В документе описаны проблемы единственного возвращаемого значения C, которые были решены с помощью исключений C ++, что, в свою очередь, создало проблему незнания, может ли функция генерировать (и Java, которая решила это и создала новую проблему) ...
Python там не обсуждался, но я знаю, что исключения могут быть грязными, распространяться и быть более ресурсоемкими, чем если бы еще, хотя я не уверен, правда ли это о том, что процессоры проигрывают из-за плохоговетвление.
Мой вопрос: могу ли я использовать больше, если еще и меньше исключений.А именно, могу ли я сделать это для этого фрагмента тайм-аута сокета:
Могу ли я изменить это:
from socket import *
def main():
client_socket = socket(AF_INET,SOCK_DGRAM)
client_socket.settimeout(1)
server_host = 'localhost'
server_port = 1234
while(True):
client_socket.sendto('Message',(server_host,server_port))
try:
reply, server_address_info = client_socket.recvfrom(1024)
print reply
except socket.Timeouterror:
#more code
На что-то без исключения, и если да, то будет ли это целесообразным?(Полагаю, я могу создать таймер с сигналами, чтобы избежать исключения, хотя это почти то же самое, только с другим синтаксисом).
Извините за плохое редактирование, запись из ячейки