Menu
Coddy logo textTech

Blok „try-catch”

Część sekcji Logika i przepływ sterowania ścieżki Dart w Coddy. Lekcja 39 z 65.

Skoro już wiesz, czym są wyjątki, nauczmy się, jak sprawnie je obsługiwać za pomocą bloku try-catch. To podstawowe narzędzie, które zapobiega awarii programu, gdy coś pójdzie nie tak.

Blok try-catch działa poprzez umieszczenie potencjalnie problematycznego kodu w sekcji try. Jeśli wystąpi wyjątek, Dart zamiast zakończyć działanie programu, natychmiast przechodzi do sekcji catch, w której możesz odpowiednio obsłużyć błąd.

try {
  // Kod, który może spowodować wyjątek
  int number = int.parse("abc");
} catch (e) {
  // Kod, który jest wykonywany, gdy wystąpi wyjątek
  print("Something went wrong: $e");
}

W tym przykładzie próba przekształcenia ciągu znaków "abc" na liczbę całkowitą zwykle spowodowałaby awarię programu. Ponieważ jednak jest ona ujęta w bloku try, wyjątek zostaje przechwycony i obsłużony w bloku catch. Zmienna e zawiera informacje o tym, co poszło nie tak.

To podejście pozwala programowi działać dalej nawet wtedy, gdy wystąpią nieoczekiwane sytuacje, dzięki czemu kod jest znacznie bardziej odporny i przyjazny dla użytkownika.

challenge icon

Wyzwanie

Łatwy

Utwórz program, który bezpiecznie konwertuje ciągi znaków wprowadzone przez użytkownika na liczby, używając bloku try-catch. Program powinien obsługiwać przypadki, w których dane wejściowe mogą nie być prawidłową liczbą, i zapobiegać awariom programu.

  1. Wczytaj ciąg znaków reprezentujący liczbę, którą trzeba przekonwertować na liczbę całkowitą
  2. Użyj bloku try-catch, aby bezpiecznie podjąć próbę konwersji za pomocą int.parse()
  3. Jeśli konwersja się powiedzie, oblicz kwadrat liczby (pomnóż ją przez samą siebie)
  4. Jeśli konwersja się nie powiedzie i wystąpi wyjątek, obsłuż błąd w odpowiedni sposób
  5. Wyświetl odpowiedni wynik lub komunikat o błędzie w dokładnym formacie pokazanym poniżej

Na przykład, jeśli dane wejściowe to "5", program powinien wyświetlić:

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

Jeśli dane wejściowe to "abc", program powinien wyświetlić:

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

Jeśli dane wejściowe to "12", program powinien wyświetlić:

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

Program musi używać bloku try-catch do objęcia operacji int.parse(). W sekcji try podejmij próbę konwersji ciągu wejściowego na liczbę całkowitą i oblicz jej kwadrat. W sekcji catch obsłuż każdy wyjątek, który wystąpi podczas konwersji, i wyświetl odpowiedni komunikat o błędzie. Program powinien działać normalnie niezależnie od tego, czy konwersja się powiedzie, czy nie.

Spróbuj swoich sił

import 'dart:io';

void main() {
  // Wczytaj ciąg znaków z wejścia
  String? input = stdin.readLineSync();
  
  // Wyświetl komunikat o przetwarzaniu
  print('Processing input: $input');
  
  // TODO: Napisz swój kod poniżej
  // Użyj bloku try-catch, aby bezpiecznie przekonwertować dane wejściowe na liczbę całkowitą
  // Oblicz kwadrat liczby, jeśli konwersja się powiedzie
  // Obsłuż wszelkie wyjątki, które wystąpią podczas konwersji
  
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator Dart online