Menu
Coddy logo textTech

'try-catch' Bloğu

Coddy'nin Dart Journey'sinin Mantık & Akış bölümünün bir parçası — ders 39 / 65.

İstisnaların ne olduğunu anladığınıza göre, try-catch bloğunu kullanarak bunları nasıl zarif bir şekilde ele alacağımızı öğrenelim. Bu, bir şeyler ters gittiğinde programınızın çökmesini engelleyen temel araçtır.

try-catch bloğu, potansiyel olarak sorunlu kodları bir try bölümüne sararak çalışır. Bir istisna (exception) oluşursa, programınızı çökertmek yerine Dart, hatayı uygun şekilde ele alabileceğiniz catch bölümüne anında atlar.

try {
  // İstisnaya neden olabilecek kod
  int number = int.parse("abc");
} catch (e) {
  // Bir istisna oluşursa çalışan kod
  print("Something went wrong: $e");
}

Bu örnekte, "abc" dizesini bir tam sayıya dönüştürmeye çalışmak normalde programınızı çökertecektir. Ancak, bir try bloğu içine alındığı için, istisna yakalanır ve bunun yerine catch bloğunda işlenir. e değişkeni, neyin yanlış gittiğine dair bilgiler içerir.

Bu yaklaşım, beklenmedik durumlar meydana gelse bile programınızın çalışmaya devam etmesini sağlayarak kodunuzu çok daha sağlam ve kullanıcı dostu hale getirir.

challenge icon

Görev

Kolay

Bir try-catch bloğu kullanarak kullanıcıdan alınan girdi dizelerini güvenli bir şekilde sayılara dönüştüren bir program oluşturun. Programınız, girdinin geçerli bir sayı olmayabileceği durumları ele almalı ve programın çökmesini engellemelidir.

  1. Tam sayıya dönüştürülmesi gereken bir sayıyı temsil eden bir dize girdisi okuyun
  2. int.parse() kullanarak dönüşümü güvenli bir şekilde denemek için bir try-catch bloğu kullanın
  3. Dönüşüm başarılı olursa, sayının karesini hesaplayın (kendisiyle çarpın)
  4. Dönüşüm başarısız olursa ve bir istisna (exception) oluşursa, hatayı düzgün bir şekilde ele alın
  5. Uygun sonucu veya hata mesajını tam olarak aşağıda gösterilen formatta görüntüleyin

Örneğin, girdi "5" ise programınız şu çıktıyı vermelidir:

Processing input: 5
Conversion successful!
The square of 5 is: 25

Eğer girdi "abc" ise programınız şu çıktıyı vermelidir:

Processing input: abc
Error: Cannot convert 'abc' to a number
Please enter a valid integer

Eğer girdi "12" ise programınız şu çıktıyı vermelidir:

Processing input: 12
Conversion successful!
The square of 12 is: 144

Programınız, int.parse() işlemini sarmalamak için bir try-catch bloğu kullanmalıdır. try bölümünde, girdi dizesini bir tam sayıya dönüştürmeye çalışın ve karesini hesaplayın. catch bölümünde, dönüşüm sırasında oluşan her türlü istisnayı ele alın ve uygun bir hata mesajı görüntüleyin. Program, dönüşümün başarılı olup olmamasına bakılmaksızın normal şekilde çalışmaya devam etmelidir.

Kopya kağıdı

İstisnaları düzgün bir şekilde yönetmek ve programın çökmesini önlemek için try-catch bloklarını kullanın:

try {
  // İstisnaya neden olabilecek kod
  int number = int.parse("abc");
} catch (e) {
  // Bir istisna oluşursa çalışan kod
  print("Something went wrong: $e");
}

try bloğu potansiyel olarak sorunlu kodları içerirken, catch bloğu meydana gelen tüm istisnaları yönetir. e değişkeni istisna hakkında bilgi içerir.

Kendin dene

import 'dart:io';

void main() {
  // Giriş dizesini oku
  String? input = stdin.readLineSync();
  
  // İşleme mesajını görüntüle
  print('Processing input: $input');
  
  // TODO: Kodunuzu aşağıya yazın
  // Girişi tam sayıya güvenli bir şekilde dönüştürmek için try-catch bloğu kullanın
  // Dönüştürme başarılı olursa kareyi hesaplayın
  // Dönüştürme sırasında oluşan istisnaları ele alın
  
}
quiz iconKendini test et

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