在阅读了有关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
对于没有例外的事情,如果可以,那是明智的选择吗? (我想我可以创建一个带有信号的计时器来避免异常,尽管这几乎是相同的,只是语法有所不同。)
很抱歉编辑不好,无法从单元格中写入