0
这里是从我的代码的摘录:Python - 如何优雅地处理TypeError?
if __name__ == "__main__":
url = sys.argv[1]
providers = (AlexaTrafficRank(), GooglePageRank(),)
print((url))
for p in providers:
print("%s:%d" % (p.__class__.__name__, p.get_rank(url)))
完整的代码可以在这里(不过,不是所有的必要):LINK
当我打电话给我的终端功能,我通过一个URL作为这个函数的参数。对于大多数的网址,将很好地工作,如:
C:\Users\Simon\PC\Test>python GetAlexRanking.py http://www.test.es
http://www.test.es
AlexaTrafficRank:17817109
GooglePageRank:2
然而,当我调用该函数的一些网址,我得到以下错误:
C:\Users\Simon\PC\Test>python GetAlexRanking.py http://www.estamos.es
http://www.estamos.es
Traceback (most recent call last):
File "GetAlexRanking.py", line 193, in <module>
print("%s:%d" % (p.__class__.__name__, p.get_rank(url)))
TypeError: %d format: a number is required, not NoneType
我如何处理这个优雅?我想要的行为将是如果AlexaTrafficRank() or GooglePageRank()
方法失败,然后我想'?'返回而不是数字。我怎样才能做到这一点?
[Python中的可能重复 - 处理值错误](http://stackoverflow.com/questions/22080983/python-handling-value-errors) – jonrsharpe