Exception Types
Coddy'nin C# Journey'sinin Mantık & Akış bölümünün bir parçası — ders 24 / 66.
C#'ta istisnalar, temsil ettikleri hataya göre farklı türlere ayrılır. Bu türleri anlamak, hataları daha etkili bir şekilde ele almanıza yardımcı olur.
Yaygın istisna türlerine bakalım:
Tüm istisnaların temel sınıfı System.Exception.
try
{
// İstisna fırlatabilecek kod
}
catch (Exception ex)
{
// Herhangi bir istisna'yı işle
Console.WriteLine(ex.Message);
}Bazı yaygın istisna türleri:
ArgumentException: Bir yöntem geçersiz bir argümanla çağrıldığında fırlatılır.
string name = null;
if (name == null)
{
throw new ArgumentException("Name cannot be null");
}NullReferenceException: Null bir referans üzerinde bir üyeye erişmeye çalışıldığında atılır.
string text = null;
// This will throw NullReferenceException
int length = text.Length;IndexOutOfRangeException: Bir dizi indeksi dizi sınırlarının dışındaysa atılır.
int[] numbers = { 1, 2, 3 };
// This will throw IndexOutOfRangeException
int value = numbers[5];DivideByZeroException: Bir tamsayıyı sıfıra böldüğünüzde atılır.
int result = 10 / 0; // This will throw DivideByZeroExceptionBelirli istisnaları yakalayabilirsiniz:
try
{
int[] numbers = { 1, 2, 3 };
int value = numbers[5];
}
catch (IndexOutOfRangeException ex)
{
Console.WriteLine("Array index error: " + ex.Message);
}
catch (Exception ex)
{
Console.WriteLine("General error: " + ex.Message);
}Görev
KolayProcessArray adında bir yöntem oluşturun ki:
- Tamsayı dizisi ve bir indeks parametrelerini alsın
- Belirtilen indeksteki elemana erişmeye çalışsın
- Başarılı olursa eleman değerini döndürsün
- Bir
IndexOutOfRangeExceptionoluşursa yakalasın ve -1 döndürsün
Yönteminizin imzası şu şekilde olmalıdır:
public static int ProcessArray(int[] array, int index)Kopya kağıdı
Tüm istisnaların temel sınıfı System.Exception'dır:
try
{
// İstisna fırlatabilecek kod
}
catch (Exception ex)
{
// Herhangi bir istisna işle
Console.WriteLine(ex.Message);
}Yaygın istisna türleri:
ArgumentException: Bir yöntem geçersiz bir argümanla çağrıldığında atılır:
string name = null;
if (name == null)
{
throw new ArgumentException("Name cannot be null");
}NullReferenceException: Null bir referansta bir üyeye erişildiğinde atılır:
string text = null;
int length = text.Length; // NullReferenceException fırlatırIndexOutOfRangeException: Dizi indeksi sınırların dışındaysa atılır:
int[] numbers = { 1, 2, 3 };
int value = numbers[5]; // IndexOutOfRangeException fırlatırDivideByZeroException: Bir tamsayı sıfıra bölündüğünde atılır:
int result = 10 / 0; // DivideByZeroException fırlatırBelirli istisnaları yakalama:
try
{
int[] numbers = { 1, 2, 3 };
int value = numbers[5];
}
catch (IndexOutOfRangeException ex)
{
Console.WriteLine("Array index error: " + ex.Message);
}
catch (Exception ex)
{
Console.WriteLine("General error: " + ex.Message);
}Kendin dene
using System;
class Program
{
public static int ProcessArray(int[] array, int index)
{
// Kodunuzu buraya yazın
return 0;
}
static void Main(string[] args)
{
// Dizi girdisini oku
string input = Console.ReadLine();
// Varsa köşeli parantezleri kaldır
if (input.StartsWith("[") && input.EndsWith("]"))
{
input = input.Substring(1, input.Length - 2);
}
string[] parts = input.Split(',');
int[] array = new int[parts.Length];
for (int i = 0; i < parts.Length; i++)
{
array[i] = int.Parse(parts[i].Trim());
}
// İndeks girdisini oku
int index = int.Parse(Console.ReadLine());
int result = ProcessArray(array, index);
Console.WriteLine(result);
}
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık & Akış bölümündeki tüm dersler
1Multi-dimensional Arrays
2D Arrays BasicsDeclaring and Initializing 2DAccessing 2D Array ElementsNested Loops with 2D ArraysJagged ArraysCommon Matrix OperationsRecap - Multi-dimensional4Flow Control Techniques
Early ReturnsGuard ClausesJump Statements (goto)Break and ContinueFlatten Nested Conditionals7Logical Operators Advanced
Short-Circuit EvaluationConditional Logical OperatorsOperator PrecedenceRecap - Advanced Operators2Advanced Decision Making
Multiple ConditionsComplex Boolean LogicIf vs. Switch ComparisonNested Switch StatementsRecap - Advanced Decisions5Exception Handling
Try-Catch BasicsException TypesMultiple Catch BlocksWorking with FilesFinally BlockUsing vs. Try-FinallyCustom ExceptionsRecap - Error Handling3Loop Enhancements
Loop PerformanceIterating ComplexEach Loop TypeRefactoring LoopsRecap - Optimized Loops6Null Handling
Null Reference BasicsNullable Value TypesNull Checking PatternsDefensive ProgrammingRecap - Null Safety