Starting python exception handling cleanup
Reviewed By: aditya
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665013 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/py/src/transport/TSocket.py b/lib/py/src/transport/TSocket.py
index c8f9e36..ee429cd 100644
--- a/lib/py/src/transport/TSocket.py
+++ b/lib/py/src/transport/TSocket.py
@@ -22,8 +22,11 @@
self.handle.settimeout(ms/1000.00)
def open(self):
- self.handle = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- self.handle.connect((self.host, self.port))
+ try:
+ self.handle = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ self.handle.connect((self.host, self.port))
+ except socket.error, e:
+ raise TTransportException(TTransportException.NOT_OPEN, e.message)
def close(self):
if self.handle != None:
@@ -42,7 +45,7 @@
while sent < have:
plus = self.handle.send(buff)
if plus == 0:
- raise TTransportException('sent 0 bytes')
+ raise TTransportException('TSocket sent 0 bytes')
sent += plus
buff = buff[plus:]
diff --git a/lib/py/src/transport/TTransport.py b/lib/py/src/transport/TTransport.py
index 502b327..b8ca7b1 100644
--- a/lib/py/src/transport/TTransport.py
+++ b/lib/py/src/transport/TTransport.py
@@ -1,11 +1,20 @@
from cStringIO import StringIO
from struct import pack,unpack
+from thrift.Thrift import TException
-class TTransportException(Exception):
+class TTransportException(TException):
"""Custom Transport Exception class"""
- pass
+ UNKNOWN = 0,
+ NOT_OPEN = 1,
+ ALREADY_OPEN = 2,
+ TIMED_OUT = 3,
+ END_OF_FILE = 4,
+
+ def __init__(self, type=UNKNOWN, message=None):
+ TException.__init__(self, message)
+ self.type = type
class TTransportBase: