我正在尝试在- (IBAction)visitorLogOut:(UIButton *)sender {
if (![namesLabel.text isEqualToString:@"name"]){
PFQuery *query = [PFQuery queryWithClassName:@"VisitorTest"];
[query fromLocalDatastore];
[query whereKey:@"timeOut" equalTo:@"nil"];
[query findObjectsInBackgroundWithBlock:^(NSArray *visitors, NSError *error){
NSDateFormatter *dformat = [[NSDateFormatter alloc] init];
[dformat setDateFormat:@"dd/MM/yyyy HH:mm"];
NSDate *time = [NSDate date];
NSString *timeString = [dformat stringFromDate:time];
self.person[@"timeOut"] = timeString;
[self.person saveEventually];
[self.person unpinInBackground];
}
];}
/ try
块中捕获以下错误,但因为这是生成错误的自定义模块 - 不会生成标准错误,例如{{1 }} 例如。捕获此类错误的正确方法是什么?
这是我的代码:
exception
最明显的方式:
ValueError
给出:
try:
obj = IPWhois(ip_address)
except Exception(IPDefinedError):
results = {}
else:
results = obj.lookup()
我要检查的错误是:
except IPDefinedError:
答案 0 :(得分:0)
这里的问题是导入!
我的导入为
from ipwhois import IPWhois
但我也需要
import ipwhois
以下是有效的:
try:
obj = IPWhois(ip_address)
except ipwhois.exceptions.IPDefinedError:
results = {}
else:
results = obj.lookup()
答案 1 :(得分:0)
这是一个快速回顾。是的,您的问题中的错误确实看起来可能与导入问题有关(根据我的评论;))。
from pprint import pprint as pp
class IPDefinedError(Exception):
"""Mock IPDefinedError implementation
"""
pass
class IPWhois(object):
"""Mock IPWhois implementation
"""
def __init__(self, ip_address):
if ip_address == "127.0.0.1":
raise IPDefinedError(
"IPv4 address '127.0.0.1' is already defined as 'Private-Use Networks' via 'RFC 1918'.")
self._ip_address = ip_address
def lookup(self):
return "RESULT"
def lookup(ip_address):
""" calculates IPWhois lookup result or None if unsuccessful
:param ip_address:
:return: IPWhois lookup result or None if unsuccessful
"""
result = None
try:
obj = IPWhois(ip_address)
result = obj.lookup()
except IPDefinedError as e:
msg = str(e)
print("Error received: {}".format(msg)) # do something with msg
return result
if __name__ == '__main__':
results = map(lookup, ["192.168.1.1", "127.0.0.1"])
pp(list(results)) # ['RESULT', None]