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 kodu bir try bölümüne sararak çalışır. Bir istisna oluşursa Dart, programınızı çökertmek yerine hemen hatayı uygun şekilde ele alabileceğiniz catch bölümüne geçer.

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

Kullanıcı girdi dizelerini bir try-catch bloğu kullanarak 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 önlemelidir.

  1. Tamsayıya dönüştürülmesi gereken bir sayıyı temsil eden dize girdisini okuyun
  2. try-catch kullanarak dönüştürme işlemini güvenli bir şekilde denemek için bir int.parse() bloğu kullanın
  3. Dönüştürme başarılı olursa sayının karesini hesaplayın (sayıyı kendisiyle çarpın)
  4. Dönüştürme başarısız olur ve bir istisna meydana gelirse hatayı uygun şekilde ele alın
  5. Aşağıda gösterilen tam biçimde uygun sonucu veya hata mesajını görüntüleyin

Örneğin, girdi "5" ise programınız şunları üretmelidir:

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

Girdi "abc" ise programınız şunları üretmelidir:

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

Girdi "12" ise programınız şunları üretmelidir:

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

Programınız, try-catch işlemini sarmalamak için bir int.parse() bloğu kullanmalıdır. try bölümünde, girdi dizesini bir tamsayıya dönüştürmeyi ve karesini hesaplamayı deneyin. catch bölümünde, dönüştürme sırasında meydana gelen istisnaları ele alın ve uygun bir hata mesajı görüntüleyin. Dönüştürme başarılı veya başarısız olsa da program normal şekilde çalışmaya devam etmelidir.

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

Kendi başına pratik yap: Online Dart derleyicisi