Jawaban singkatnya adalah keduanya raise MyExceptiondan raise MyException()melakukan hal yang sama. Formulir pertama ini otomatis membuat pengecualian Anda.
Bagian yang relevan dari dokumen mengatakan, " raise mengevaluasi ekspresi pertama sebagai objek pengecualian. Ini harus berupa subclass atau instance dari BaseException. Jika ini adalah kelas, instance pengecualian akan diperoleh saat diperlukan dengan membuat instance kelas dengan tidak ada argumen. "
Meskipun demikian, meskipun semantiknya sama, bentuk pertama lebih cepat secara mikroskopis, dan bentuk kedua lebih fleksibel (karena Anda dapat menyampaikan argumen jika diperlukan).
Gaya yang biasa digunakan kebanyakan orang dengan Python (yaitu di pustaka standar, di aplikasi populer, dan di banyak buku) akan digunakan raise MyExceptionsaat tidak ada argumen. Orang hanya membuat contoh pengecualian secara langsung jika ada beberapa argumen yang perlu diteruskan. Sebagai contoh: raise KeyError(badkey).