Câu hỏi Sự khác biệt giữa nâng cao ngoại lệ, “foo” và tăng ngoại lệ (“foo”)?


Tiêu đề khá tự giải thích - sự khác biệt giữa:

raise Exception, "foo"

raise Exception("foo")

Liệu nó có thực hiện chính xác điều tương tự, chỉ cú pháp khác nhau?

Tôi đang sử dụng Python 2.x, nhưng tôi muốn nghe về bất kỳ sự khác biệt trong Python 3.x


16
2018-06-23 00:56


gốc


Khi bạn thử nó, bạn đã quan sát điều gì? - S.Lott
Không có sự khác biệt rõ rệt. - bradley.ayers
Tôi không cho rằng bởi vì tôi thấy không có sự khác biệt rõ ràng, rằng có Là không khác nhau. Tôi nghĩ câu hỏi của tôi khá rõ ràng, phần nào bạn gặp khó khăn trong việc hiểu? - bradley.ayers
Có lẽ sự khác biệt giữa ABC: //google.com và abc: //google.com đều hoạt động tốt, nhưng trước đây không chính xác theo ietf.org/rfc/rfc2396.txt (Phần 3.1) - tuy nhiên lưu ý rằng nó cho thấy các chương trình nên coi chúng là tương đương. Trong ý nghĩa này cho tất cả các ý định và mục đích họ hình như giống nhau, nhưng ở đó Là một sự khác biệt, một vi phạm RFC, và một khác thì không. - bradley.ayers
Bạn sẽ có thể thấy rằng ai đó đã trả lời câu hỏi này. Tôi đã chấp nhận câu trả lời đó, và vì vậy bằng cách đọc câu trả lời đó bạn sẽ có thể thấy những gì tôi coi là một câu trả lời thỏa đáng. - bradley.ayers


Các câu trả lời:


cả hai số tiền cho cùng một điều trong Python2. trong Python3, raise Exception, "foo" cú pháp không còn được hỗ trợ.


24
2018-06-23 01:00



Xem python.org/dev/peps/pep-3109 để biết thêm chi tiết về điều đó. - jena
Cảm ơn, câu trả lời tuyệt vời. - bradley.ayers
Nó cũng đáng nói đến, rằng raise Exception, ('foo', 'bar') tương đương với raise Exception('foo', 'bar') - bradley.ayers