โพสต์ของ pzrq บอกว่าจะใช้:
str(e)
นี่คือสิ่งที่ฉันต้องการ
(หากคุณอยู่ในสภาพแวดล้อม unicode ปรากฏว่า:
unicode(e)
จะทำงานและดูเหมือนว่าจะทำงานได้ดีในสภาพแวดล้อมที่ไม่ใช่ยูนิโค้ด)
Pzrq พูดอะไรดีๆอีกหลายอย่าง แต่ฉันเกือบพลาดคำตอบเพราะสิ่งดีๆทั้งหมด เนื่องจากฉันไม่มีคะแนน 50 คะแนนฉันจึงไม่สามารถออกความเห็นเกี่ยวกับคำตอบของพวกเขาเพื่อพยายามดึงดูดความสนใจไปยังโซลูชันง่ายๆที่ใช้งานได้และเนื่องจากฉันไม่มี 15 ฉันไม่สามารถโหวตคำตอบนั้นได้ แต่ฉันสามารถโพสต์ได้ โอ้ดี) - ดังนั้นที่นี่ฉันโพสต์ - อาจเสียคะแนนสำหรับที่ ...
ตั้งแต่จุดของฉันคือการดึงดูดความสนใจไปที่คำตอบของ pzrq โปรดอย่าเคลือบและพลาดในทุกด้านล่าง สองสามบรรทัดแรกของโพสต์นี้สำคัญที่สุด
เรื่องราวของฉัน:
ปัญหาที่ฉันมาที่นี่คือถ้าคุณต้องการที่จะรับการยกเว้นจากชั้นเรียนที่คุณไม่สามารถควบคุมได้ - แล้วอะไรล่ะ ??? แน่นอนว่าฉันจะไม่คลาสย่อยที่เป็นไปได้ทั้งหมดรหัสของฉันใช้ในความพยายามที่จะได้รับข้อความจากข้อยกเว้นที่เป็นไปได้ทั้งหมด!
ฉันใช้:
except Exception as e:
print '%s (%s)' % (e.message,type(e))
ซึ่งตามที่เราทุกคนรู้แล้วให้เตือน OP ถามเกี่ยวกับ (ซึ่งนำฉันมาที่นี่) และสิ่งนี้ซึ่ง pzrq ให้เป็นวิธีที่จะทำ:
except Exception as e:
print '%s (%s)' % (str(e),type(e))
ไม่ได้.
ฉันไม่ได้อยู่ในสภาพแวดล้อมเดียว แต่คำตอบของ jjc ทำให้ฉันประหลาดใจดังนั้นฉันต้องลอง ในบริบทนี้สิ่งนี้จะกลายเป็น:
except Exception as e:
print '%s (%s)' % (unicode(e),type(e))
ที่แปลกใจของฉันทำงานเหมือน str (e) - ดังนั้นตอนนี้นั่นคือสิ่งที่ฉันใช้
ไม่ทราบว่า 'str (e) / unicode (e)' เป็น 'วิธี Python ที่ได้รับการอนุมัติ' และฉันอาจจะหาสาเหตุที่ไม่ดีเมื่อฉันได้รับถึง 3.0 แต่หวังว่าความสามารถในการจัดการ ข้อยกเว้นที่ไม่คาดคิด (*) โดยไม่ตายและยังได้รับข้อมูลบางอย่างจากมันจะไม่หายไป ...
(*) อืม "ข้อยกเว้นที่ไม่คาดคิด" - ฉันคิดว่าฉันแค่พูดติดอ่าง!