Rumah pembangunan bahagian belakang Tutorial Python 浅谈python抛出异常、自定义异常, 传递异常

浅谈python抛出异常、自定义异常, 传递异常

Jul 21, 2016 pm 02:53 PM
Pengecualian tersuai

一. 抛出异常

Python用异常对象(exception object)表示异常情况,遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行。

raise 语句

Python中的raise 关键字用于引发一个异常,基本上和C#和Java中的throw关键字相同,如下所示:

import traceback

def throw_error():
  raise Exception("抛出一个异常")#异常被抛出,print函数无法执行
  print("飞天猪")
  
throw_error()

Salin selepas log masuk

#运行结果:

'''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: 抛出一个异常'''
Salin selepas log masuk

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)

Salin selepas log masuk

三.自定义异常类型

Python中也可以自定义自己的特殊类型的异常,只需要要从Exception类继承(直接或间接)即可:

class MyError(Exception):
  pass
Salin selepas log masuk

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara melaksanakan pengendalian ralat dan pengecualian tersuai dalam FastAPI Cara melaksanakan pengendalian ralat dan pengecualian tersuai dalam FastAPI Jul 29, 2023 pm 07:00 PM

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

Penciptaan dan penggunaan pengecualian tersuai Java Penciptaan dan penggunaan pengecualian tersuai Java May 03, 2024 pm 10:27 PM

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.

Pengendalian pengecualian Python: kuasai kelebihan tajam dan kawal hayat kod anda Pengendalian pengecualian Python: kuasai kelebihan tajam dan kawal hayat kod anda Feb 25, 2024 pm 04:10 PM

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

Program C++ mencipta pengecualian tersuai Program C++ mencipta pengecualian tersuai Aug 26, 2023 pm 07:53 PM

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) Penyelesaian kepada pengecualian pengendalian pengecualian tersuai Java (CustomExceptionHandlerException) Aug 17, 2023 pm 06:18 PM

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

Bagaimana untuk membuat pengendali pengecualian tersuai dalam CakePHP? Bagaimana untuk membuat pengendali pengecualian tersuai dalam CakePHP? Jun 03, 2023 pm 11:01 PM

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

Bagaimana untuk menyesuaikan pengecualian dalam Java? Bagaimana untuk menyesuaikan pengecualian dalam Java? Apr 12, 2024 am 09:06 AM

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.

Bagaimana untuk menangkap dan mengendalikan pengecualian tersuai dalam PHP? Bagaimana untuk menangkap dan mengendalikan pengecualian tersuai dalam PHP? May 09, 2024 pm 10:00 PM

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.

See all articles