Gracefully report application errors
Closed this issue · 0 comments
arthur00 commented
Catch typos and mistaken uses of pcc commands, and report error gracefully. Not setting a Node as a setter gave me this error on client side:
Traceback (most recent call last):
File "C:\Python27\lib\threading.py", line 801, in __bootstrap_inner
self.run()
File "C:\Python27\lib\threading.py", line 754, in run
self.__target(*self.__args, **self.__kwargs)
File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\spacetime_local\frame.py", line 83, in __run
self.__pull()
File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\spacetime_local\frame.py", line 159, in __pull
self.__process_pull_resp(resp.json())
File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\spacetime_local\frame.py", line 136, in __process_pull_resp
self.object_store.frame_insert_all(typeObj, new[tp])
File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\spacetime_local\store.py", line 38, in frame_insert_all
self.frame_insert(tp, id, obj)
File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\spacetime_local\store.py", line 30, in frame_insert
obj = create_tracking_obj(tp, objjson, self.__objects, False, False)
File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\common\converter.py", line 55, in create_tracking_obj
obj = create_complex_obj(tp, objjson, universemap, extra)
File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\common\converter.py", line 73, in create_complex_obj
setattr(obj, dimension._name, create_tracking_obj(dimension._type, objjson[dimension._name], universemap, True))
File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\common\converter.py", line 55, in create_tracking_obj
obj = create_complex_obj(tp, objjson, universemap, extra)
File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\common\converter.py", line 63, in create_complex_obj
all_attribs = set(objjson.keys())
AttributeError: 'NoneType' object has no attribute 'keys'
and this one on server-side:
[root] Exception handling function post:
Traceback (most recent call last):
File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\spacetime\store_server.py", line 52, in wrapped
ret = f(*args, **kwds)
File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\spacetime\store_server.py", line 147, in post
FrameServer.Store.put_update(sim, typeObj, new, mod, deleted)
File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\spacetime\store.py", line 236, in put_update
return self.__put_update(app, tp, new, mod, deleted)
File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\spacetime\store.py", line 253, in __put_update
self.__base_store.put(tp, id, new[id])
File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\spacetime\store.py", line 60, in put
self.__data[tp][id] = object
KeyError: <class 'pcc.set._set'>