浅谈python抛出异常、自定义异常, 传递异常
一. 抛出异常
Python用异常对象(exception object)表示异常情况,遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行。
raise 语句
Python中的raise 关键字用于引发一个异常,基本上和C#和Java中的throw关键字相同,如下所示:
import traceback def throw_error(): raise Exception("抛出一个异常")#异常被抛出,print函数无法执行 print("飞天猪") throw_error()
#运行结果:
'''Traceback (most recent call last): File "C:\Users\Administrator\Desktop\systray.py", line 7, in <module> throw_error() File "C:\Users\Administrator\Desktop\systray.py", line 4, in throw_error raise Exception("抛出一个异常")#异常被抛出,print函数无法执行 Exception: 抛出一个异常'''
raise关键字后面是抛出是一个通用的异常类型(Exception),一般来说抛出的异常越详细越好
二.传递异常:
捕捉到了异常,但是又想重新引发它(传递异常),可以使用不带参数的raise语句即可:
class MufCalc(object): m = False def calc(self,exp): try: return eval(exp) except ZeroDivisionError: if self.m: print("cool") else: raise app = MufCalc() app.calc(2/0)
三.自定义异常类型:
Python中也可以自定义自己的特殊类型的异常,只需要要从Exception类继承(直接或间接)即可:
class MyError(Exception): pass

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Cara melaksanakan pengendalian ralat dan pengecualian tersuai dalam FastAPI Pengenalan: FastAPI ialah rangka kerja web moden berdasarkan Python Prestasi tinggi dan keupayaan pembangunan pesat menjadikannya semakin popular dalam bidang pembangunan. Dalam aplikasi sebenar, ralat dan pengecualian sering ditemui. Artikel ini akan memperkenalkan cara melaksanakan pengendalian ralat dan pengecualian tersuai dalam FastAPI untuk membantu pembangun mengendalikan dan mengurus situasi ralat dalam aplikasi dengan lebih baik. Pengendalian ralat FastAPI: FastAPI menyediakan a

Pengecualian tersuai digunakan untuk mencipta mesej ralat dan mengendalikan logik. Pertama, anda perlu mewarisi Exception atau RuntimeException untuk mencipta kelas pengecualian tersuai. Kemudian, anda boleh mengatasi kaedah getMessage() untuk menetapkan mesej pengecualian. Pengecualian dilemparkan melalui kata kunci lontaran. Gunakan blok cuba-tangkap untuk mengendalikan pengecualian tersuai. Artikel ini menyediakan kes praktikal untuk menghuraikan input integer dan melontar InvalidInputException tersuai apabila input bukan integer.

Python ialah bahasa pengaturcaraan yang berkuasa, tetapi ia tidak sempurna. Semasa menjalankan program Python, anda mungkin menghadapi pelbagai pengecualian, menyebabkan program ranap atau menghasilkan keputusan yang salah. Untuk mengelakkan situasi ini daripada berlaku, kita perlu mengendalikan situasi yang tidak normal, iaitu pengendalian pengecualian. Sintaks asas untuk pengendalian pengecualian ialah cuba-kecuali-akhirnya. Blok cuba mengandungi kod yang boleh menyebabkan pengecualian, blok kecuali digunakan untuk menangkap pengecualian, dan blok akhirnya digunakan untuk kod yang akan dilaksanakan tanpa mengira sama ada pengecualian berlaku. Berikut ialah contoh pengendalian pengecualian mudah: cuba: #Kod yang mungkin menyebabkan pengecualian kecualiExceptionase: #Tangkap pengecualian dan kendalikan fi

Pengecualian adalah konsep teras C++. Pengecualian berlaku apabila operasi yang tidak diingini atau mustahil berlaku semasa pelaksanaan. Mengendalikan operasi yang tidak diingini atau mustahil ini dalam C++ dipanggil pengendalian pengecualian. Pengendalian pengecualian terutamanya menggunakan tiga kata kunci khusus, iaitu 'cuba', 'tangkap' dan 'buang'. Kata kunci 'cuba' digunakan untuk melaksanakan kod yang mungkin menghadapi pengecualian, kata kunci 'tangkap' digunakan untuk mengendalikan pengecualian ini dan kata kunci 'lempar' digunakan untuk membuat pengecualian. Pengecualian dalam C++ boleh dibahagikan kepada dua jenis, iaitu pengecualian STL dan pengecualian yang ditentukan pengguna. Dalam artikel ini, kami memberi tumpuan kepada cara membuat pengecualian tersuai ini. Butiran lanjut mengenai pengendalian pengecualian boleh didapati di sini. Guna satu

Penyelesaian kepada pengecualian pengendalian pengecualian tersuai Java (CustomExceptionHandlerException) Dalam pembangunan Java, kita sering menghadapi pelbagai situasi tidak normal. Selain jenis pengecualian yang telah ditakrifkan dalam Java, kami juga boleh menyesuaikan jenis pengecualian untuk mengendalikan logik perniagaan tertentu dengan lebih baik. Walau bagaimanapun, dalam proses menggunakan pengendalian pengecualian tersuai, anda kadangkala menghadapi beberapa masalah, seperti CustomExceptionHandlerExcept

CakePHP ialah rangka kerja PHP popular yang membolehkan anda membina aplikasi web dengan cepat. Pelbagai pengecualian boleh berlaku semasa memproses input pengguna dan melaksanakan tugas seperti operasi pangkalan data. Bagaimanakah pengecualian boleh dikendalikan supaya mesej ralat tidak dibentangkan terus kepada pengguna apabila masalah berlaku? Di sinilah pengendali pengecualian tersuai masuk. Dalam artikel ini, kami akan meneroka cara membuat pengendali pengecualian tersuai dalam CakePHP. Mengapa kita memerlukan pengendali pengecualian tersuai? Apabila aplikasi web melemparkan pengecualian, Cak

Mencipta pengecualian tersuai dalam Java meningkatkan keteguhan aplikasi. Ia memerlukan: Buat kelas pengecualian tersuai, diwarisi daripada Exception atau RuntimeException. Melemparkan pengecualian tersuai, sama seperti melontar pengecualian biasa. Tangkap pengecualian tersuai apabila memanggil kaedah untuk mesej ralat yang lebih bermaklumat.

Cara menangkap dan mengendalikan pengecualian tersuai dalam PHP: Warisi kelas Pengecualian untuk mencipta pengecualian tersuai. Gunakan kata kunci lontaran untuk membuang pengecualian tersuai. Gunakan cuba, tangkap, dan akhirnya sekat untuk menangkap dan mengendalikan pengecualian.
