Python bangkitkan kembali pengecualian dengan pesan tambahan

Dalam posting ini, kita akan melihat Cara Membuat Kode Penanganan Pengecualian Khusus dengan Python. Terlepas dari regular , out of the box atau in-built exceptions, Python memfasilitasi kita untuk membuat atau mendefinisikan Pengecualian kustom kita sendiri sesuai kebutuhan Bisnis

(Sementara itu jika Anda belum membaca postingan detail kami di Berbagai cara Penanganan Pengecualian dengan Python, Bacalah Cara Menangani Kesalahan dan Pengecualian dengan Python?)

Pengguna dapat membuat atau menentukan Pengecualian Sendiri, berdasarkan Logika Bisnis Khusus

jika( aicp_can_see_ads() ) {

}

Anda dapat membuat Pengecualian Khusus jika –

  • Pengecualian In-Bulit Python yang ada tidak mencakup persyaratan ATAU,
  • Anda ingin mengintegrasikan beberapa sistem logging yang lebih canggih atau memeriksa objek lebih lanjut ATAU,
  • Anda ingin menampilkan lebih banyak informasi Spesifik saat pengecualian atau kesalahan terjadi ATAU,
  • Anda mungkin memerlukan pengecualian yang dibuat khusus untuk database tertentu atau pekerjaan layanan, dll

 

Mari kita lihat bagaimana kita dapat menangani Custom Exception dengan berbagai cara –

Pengecualian Kustom 1 – Traceback

Ketika Pengecualian apa pun dimunculkan dan tetapi tidak ditangani, maka itu hanya akan mencetak traceback ke keluaran kesalahan

Dalam kasus seperti itu, keluaran kesalahan hanyalah konsol Python

jika( aicp_can_see_ads() ) {

}

Pesan lacak kembali hanya memberikan beberapa informasi dan beberapa detail tentang kesalahan sebenarnya yang terjadi

try: 
    your_function() 

except: 
    import traceback 
    s = traceback.format_exc() 
    some_function_to_use_traceback_details(s) 
    raise

 

Pengecualian Kustom 2 – Pengecualian Vanila

Kita bisa membuat objek dari Pengecualian Python. Dan kemudian menaikkan kesalahan itu sendiri

Ini adalah penggunaan vanilla yang paling sederhana

 

def card_type(card): 
    
   if card == "xxxx": 
      raise Exception("xxxx types of Card is not accepted") 
   
   print "Card Accepted")
_

 

jika( aicp_can_see_ads() ) {

}

Pengecualian Khusus 3 – Sub kelas Pengecualian

Jika kita ingin membuat Pengecualian lebih bermakna dan dibuat khusus, kita dapat membuat Subkelas Pengecualian

Lihat contoh di bawah ini –

Contoh 1

class CustomException(Exception): 

  def __init___(self,customArgs): 
    Exception.__init__(self,"Custom Exception raised with parameters {0}".format(customArgs)) 
    self.customArgs = customArgs


def do_something(arg1,arg2): 

  if validity_ok(arg1,arg2) : 
    all_good()
  else: 
    raise CustomException({'arg1' : arg1, 'arg2' : arg2})

 

Contoh-2

<import_Statements>

import os

import errno

class <Custom_Exception_Name>(Exception):  

   """
   Exception raised for errors Custom case.

   Attributes: 
   message -- explain about the error

   """  

   def __init__(self, message):  
 
     # Calling the Base class constructor with the parameters 
     super().__init__(message)  



def <Custom_Function> ()  

  if <CHECK_IF_BUSINESS_CRITERIA_is_MET>

    <NO_NEED_TO_DO_ANYTHING>

  else: ##### DEFINE THE EXCEPTION DETAILS HERE

    raise <Custom_Exception_Name>(errno.ENOENT, os.strerror(errno.ENOENT))  



Custom_Function()

 

jika( aicp_can_see_ads() ) {

}

 

Pengecualian Khusus 4 – Sesuaikan Kesalahan Standar

Kita dapat menggunakan kelas pengecualian Python Bawaan Standar yang ada dan kemudian membuat instance baru dari kelas itu. Dengan cara ini kita dapat meningkatkan dan membangun fungsionalitas yang disediakan oleh pengecualian Python Bawaan yang Ada

Lihat contoh di bawah ini –

 

jika( aicp_can_see_ads() ) {

}

class CustomException(ValueError):
 def __init__(self, arg):
  self.strerror = arg
  self.args = {arg}

try:
 raise CustomException("Age must be more than 18")

except CustomException as e:
 print("This is Custom ValueError Exception - ", e.strerror)
_

 

Jika Anda ingin membaca lebih lanjut tentang Penanganan Pengecualian Python, baca Posting Sebelumnya kami – Bagaimana Menangani Kesalahan dan Pengecualian di Python?

Bagaimana Anda memunculkan pengecualian dengan pesan khusus di Python?

Dengan Python, kita dapat mendefinisikan pengecualian khusus dengan membuat kelas baru yang diturunkan dari kelas Pengecualian bawaan . Inilah sintaks untuk mendefinisikan pengecualian khusus, kelas CustomError(Exception). . lulus mencoba. .

Bagaimana Anda memunculkan banyak pengecualian dengan Python?

Dengan menangani banyak pengecualian, sebuah program dapat merespons pengecualian yang berbeda tanpa menghentikannya. Dalam Python, blok coba-kecuali dapat digunakan untuk menangkap dan merespons satu atau beberapa pengecualian . Dalam kasus di mana suatu proses memunculkan lebih dari satu kemungkinan pengecualian, semuanya dapat ditangani menggunakan satu klausa kecuali.

Apakah mungkin untuk memunculkan kembali pengecualian dengan Python?

Naikkan kembali pengecualian saat ini . Dalam hal ini, Anda dapat menggunakan pernyataan raise tanpa menentukan objek pengecualian . Jika Anda meneruskan nol ke argumen kedua dari fungsi division() , pengecualian ZeroDivisionError akan terjadi.

Bagaimana cara memunculkan pengecualian dalam pengecualian Python?

Sebagai pengembang Python, Anda dapat memilih untuk melontarkan pengecualian jika suatu kondisi terjadi. Untuk membuang (atau menaikkan) pengecualian, gunakan kata kunci kenaikan .