Тайм-аут перехвата сокета без исключений - PullRequest
0 голосов
/ 23 апреля 2019

Прочитав немного об исключениях 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

На что-то без исключения, и если да, то будет ли это целесообразным?(Полагаю, я могу создать таймер с сигналами, чтобы избежать исключения, хотя это почти то же самое, только с другим синтаксисом).

Извините за плохое редактирование, запись из ячейки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...