Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

C# - Penanganan Pengecualian

Pengecualian adalah masalah yang muncul selama eksekusi program. Pengecualian C# adalah respons terhadap keadaan luar biasa yang muncul saat program sedang berjalan, seperti upaya untuk membagi dengan nol.

Pengecualian menyediakan cara untuk mentransfer kontrol dari satu bagian program ke bagian lain. Penanganan pengecualian C# dibangun di atas empat kata kunci:coba , tangkap , akhirnya , dan melempar .

Sintaks

Dengan asumsi sebuah blok memunculkan eksepsi, sebuah metode menangkap eksepsi menggunakan kombinasi kata kunci try and catch. Blok coba/tangkap ditempatkan di sekitar kode yang mungkin menghasilkan pengecualian. Kode dalam blok try/catch disebut sebagai kode yang dilindungi, dan sintaks untuk menggunakan try/catch terlihat seperti berikut −

try {
   // statements causing exception
} catch( ExceptionName e1 ) {
   // error handling code
} catch( ExceptionName e2 ) {
   // error handling code
} catch( ExceptionName eN ) {
   // error handling code
} finally {
   // statements to be executed
}

Anda dapat membuat daftar beberapa pernyataan catch untuk menangkap jenis pengecualian yang berbeda jika blok try Anda memunculkan lebih dari satu pengecualian dalam situasi yang berbeda.

Kelas Pengecualian di C#

Pengecualian C# diwakili oleh kelas. Kelas pengecualian dalam C# terutama secara langsung atau tidak langsung diturunkan dari System.Exception kelas. Beberapa kelas pengecualian yang diturunkan dari kelas System.Exception adalah System.ApplicationException dan System.SystemException kelas.

System.ApplicationException kelas mendukung pengecualian yang dihasilkan oleh program aplikasi. Oleh karena itu pengecualian yang didefinisikan oleh programmer harus berasal dari kelas ini.

System.SystemException class adalah kelas dasar untuk semua pengecualian sistem yang telah ditentukan sebelumnya.

Tabel berikut menyediakan beberapa kelas pengecualian standar yang diturunkan dari kelas Sytem.SystemException

No.Sr. Kelas &Deskripsi Pengecualian
1

System.IO.IOException

Menangani kesalahan I/O.

2

System.IndexOutOfRangeException

Menangani kesalahan yang dihasilkan saat metode merujuk ke indeks larik di luar jangkauan.

3

System.ArrayTypeMismatchException

Menangani kesalahan yang dihasilkan saat jenis tidak cocok dengan jenis larik.

4

System.NullReferenceException

Menangani kesalahan yang dihasilkan dari mereferensikan objek nol.

5

System.DivideByZeroException

Menangani kesalahan yang dihasilkan dari pembagian dividen dengan nol.

6

System.InvalidCastException

Menangani kesalahan yang dihasilkan selama typecasting.

7

System.OutOfMemoryException

Menangani kesalahan yang dihasilkan dari memori kosong yang tidak mencukupi.

8

System.StackOverflowException

Menangani kesalahan yang dihasilkan dari stack overflow.

Menangani Pengecualian

C# menyediakan solusi terstruktur untuk penanganan eksepsi dalam bentuk blok coba dan tangkap. Dengan menggunakan blok-blok ini, pernyataan program inti dipisahkan dari pernyataan penanganan kesalahan.

Blok penanganan kesalahan ini diimplementasikan menggunakan coba , tangkap , dan akhirnya kata kunci. Berikut ini adalah contoh pelemparan eksepsi ketika pembagian dengan kondisi nol terjadi

Demo Langsung
using System;

namespace ErrorHandlingApplication {
   class DivNumbers {
      int result;
      
      DivNumbers() {
         result = 0;
      }
      public void division(int num1, int num2) {
         try {
            result = num1 / num2;
         } catch (DivideByZeroException e) {
            Console.WriteLine("Exception caught: {0}", e);
         } finally {
            Console.WriteLine("Result: {0}", result);
         }
      }
      static void Main(string[] args) {
         DivNumbers d = new DivNumbers();
         d.division(25, 0);
         Console.ReadKey();
      }
   }
}

Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut

Exception caught: System.DivideByZeroException: Attempted to divide by zero. 
at ...
Result: 0

Membuat Pengecualian Buatan Pengguna

Anda juga dapat menentukan pengecualian Anda sendiri. Kelas pengecualian yang ditentukan pengguna berasal dari Pengecualian kelas. Contoh berikut menunjukkan ini

Demo Langsung
using System;

namespace UserDefinedException {
   class TestTemperature {
      static void Main(string[] args) {
         Temperature temp = new Temperature();
         try {
            temp.showTemp();
         } catch(TempIsZeroException e) {
            Console.WriteLine("TempIsZeroException: {0}", e.Message);
         }
         Console.ReadKey();
      }
   }
}
public class TempIsZeroException: Exception {
   public TempIsZeroException(string message): base(message) {
   }
}
public class Temperature {
   int temperature = 0;
   
   public void showTemp() {
      
      if(temperature == 0) {
         throw (new TempIsZeroException("Zero Temperature found"));
      } else {
         Console.WriteLine("Temperature: {0}", temperature);
      }
   }
}

Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut

TempIsZeroException: Zero Temperature found

Melempar Benda

Anda dapat melempar objek jika objek tersebut secara langsung atau tidak langsung diturunkan dari System.Exception kelas. Anda dapat menggunakan pernyataan throw di blok catch untuk melempar objek saat ini sebagai −

Catch(Exception e) {
   ...
   Throw e
}

Bahasa C

  1. C# menggunakan
  2. C Penanganan Berkas
  3. Penanganan Pengecualian Python Menggunakan pernyataan coba, kecuali dan akhirnya
  4. Penanganan Pengecualian Java
  5. Penanganan Pengecualian C++:Coba, Tangkap, lempar Contoh
  6. Penanganan Pengecualian Python:coba, tangkap, akhirnya &naikkan [Contoh]
  7. Penanganan Sinyal C++
  8. Java 9 - Sistem Modul
  9. PLC vs DCS
  10. Sistem Penanganan Pallet Modular Memungkinkan Produksi yang Fleksibel