捕获套接字超时无一例外

时间:2019-04-23 10:18:53

标签: python exception timeout

在阅读了有关Go的无异常知识后,我开始怀疑我是否可以(并且应该)将Python代码中异常的使用率降至最低。

论文:https://dave.cheney.net/2012/01/18/why-go-gets-exceptions-right

该论文描述了C的单返回值的问题,该问题由C ++的异常解决,反过来又产生了一个不知道函数是否可以抛出的问题(而Java则解决了该问题,并创建了一个新问题)。 ..

Python在那里没有讨论,但是我确实知道异常可能比if-else杂乱无章,容易传播并且占用大量资源,尽管我不确定处理器因错误分支而损失的时间是否成立。

我的问题是,是否以及如何才能使用更多(如果没有)和更少的例外。也就是说,我可以针对此套接字超时代码段进行操作吗?

我可以更改吗?

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

对于没有例外的事情,如果可以,那是明智的选择吗? (我想我可以创建一个带有信号的计时器来避免异常,尽管这几乎是相同的,只是语法有所不同。)

很抱歉编辑不好,无法从单元格中写入

0 个答案:

没有答案
相关问题