From 45ecb2b69e377dfb7e2080347d560420607f18ba Mon Sep 17 00:00:00 2001 From: Nathan Binkert Date: Mon, 19 Dec 2005 02:07:06 -0500 Subject: [PATCH] Create the ProxyError Exception. Raise it when an unproxy operation fails because information is wrong or not available. --HG-- extra : convert_revision : 1fd90c1291618b09752179cfa6894f1df495fffd --- util/stats/info.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/util/stats/info.py b/util/stats/info.py index 1f9f11940..4cb55f564 100644 --- a/util/stats/info.py +++ b/util/stats/info.py @@ -27,6 +27,9 @@ from __future__ import division import operator, re, types +class ProxyError(Exception): + pass + def unproxy(proxy): if hasattr(proxy, '__unproxy__'): return proxy.__unproxy__() @@ -336,7 +339,12 @@ class AttrProxy(Proxy): self.attr = attr def __unproxy__(self): - return unproxy(getattr(unproxy(self.proxy), self.attr)) + proxy = unproxy(self.proxy) + try: + attr = getattr(proxy, self.attr) + except AttributeError, e: + raise ProxyError, e + return unproxy(attr) def __str__(self): return '%s.%s' % (self.proxy, self.attr)