MonkeyRunner उपयोग करते समय, हर बार मैं की तरह एक त्रुटि प्राप्त:मैं MonkeyRunner में सॉकेट अपवाद कैसे पकड़ूं?
120830 18:39:32.755:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice] Unable to get variable: display.density
120830 18:39:32.755:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]java.net.SocketException: Connection reset
मैं क्या पढ़ा है से, कभी कभी एडीबी कनेक्शन बुरा हो जाता है, और आप फिर से कनेक्ट करने की जरूरत है। एकमात्र समस्या यह है कि, मैं SocketException
को पकड़ने में सक्षम नहीं हूं। मैं अपना कोड इस प्रकार लपेटूंगा:
try:
density = self.device.getProperty('display.density')
except:
print 'This will never print.'
लेकिन अपवाद स्पष्ट रूप से कॉलर के लिए सभी तरह से उठाया नहीं गया है। मैं सत्यापित किया है कि MonkeyRunner/Jython जावा अपवाद तरह से मैं उम्मीद थी पकड़ कर सकते हैं:
>>> from java.io import FileInputStream
>>> def test_java_exceptions():
... try:
... FileInputStream('bad mojo')
... except:
... print 'Caught it!'
...
>>> test_java_exceptions()
Caught it!
मैं इन सॉकेट अपवादों के साथ कैसे सौदा कर सकते हैं?
ठीक है, मैं ने कहा है कि के कारण नहीं है है: परिशिष्ट के रूप में, मैं भी जावा त्रुटि देखें करने के लिए एक रास्ता मिल गया एक 'adb' अस्थिरता लेकिन MonkeyRuner/Chimpchat वाले। [एंड्रॉइड व्यूक्लिएंट/कुलेब्रा] (https://github.com/dtmilano/AndroidViewClient) एक 'adbclient', एक पायथन मॉड्यूल का उपयोग करता है जो' adb' के साथ सभी संवाद को समाहित करता है और यह बहुत स्थिर है। –