Menu
Coddy logo textTech

'try-catch' 블록

Coddy Dart 여정의 로직 & 흐름 섹션에 포함된 레슨 — 65개 중 39번째.

이제 예외가 무엇인지 이해했으므로, try-catch 블록을 사용하여 예외를 우아하게 처리하는 방법을 배워보겠습니다. 이것은 무언가 잘못되었을 때 프로그램이 중단되는 것을 방지하는 기본적인 도구입니다.

try-catch 블록은 잠재적으로 문제가 발생할 수 있는 코드를 try 섹션으로 감싸는 방식으로 작동합니다. 예외가 발생하면 프로그램이 중단되는 대신, Dart는 즉시 catch 섹션으로 이동하여 오류를 적절하게 처리할 수 있도록 합니다.

try {
  // 예외가 발생할 수 있는 코드
  int number = int.parse("abc");
} catch (e) {
  // 예외가 발생했을 때 실행되는 코드
  print("Something went wrong: $e");
}

이 예제에서 문자열 "abc"를 정수로 변환하려고 시도하면 보통 프로그램이 중단됩니다. 하지만 try 블록으로 감싸져 있기 때문에, 대신 예외가 발생했을 때 catch 블록에서 이를 포착하고 처리합니다. 변수 e에는 무엇이 잘못되었는지에 대한 정보가 포함되어 있습니다.

이 접근 방식은 예기치 않은 상황이 발생하더라도 프로그램이 계속 실행될 수 있도록 하여, 코드를 훨씬 더 견고하고 사용자 친화적으로 만들어 줍니다.

challenge icon

챌린지

쉬움

try-catch 블록을 사용하여 사용자 입력 문자열을 숫자로 안전하게 변환하는 프로그램을 작성하세요. 프로그램은 입력값이 유효한 숫자가 아닐 수 있는 경우를 처리하고 프로그램이 중단되는 것을 방지해야 합니다.

  1. 정수로 변환해야 할 숫자를 나타내는 문자열 입력을 읽습니다.
  2. try-catch 블록을 사용하여 int.parse()로 변환을 안전하게 시도합니다.
  3. 변환에 성공하면, 숫자의 제곱을 계산합니다 (숫자 자체를 곱함).
  4. 변환에 실패하고 예외가 발생하면, 에러를 적절하게 처리합니다.
  5. 아래에 표시된 정확한 형식으로 적절한 결과 또는 에러 메시지를 표시합니다.

예를 들어, 입력이 "5"인 경우 프로그램은 다음과 같이 출력해야 합니다:

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

입력이 "abc"인 경우 프로그램은 다음과 같이 출력해야 합니다:

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

입력이 "12"인 경우 프로그램은 다음과 같이 출력해야 합니다:

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

프로그램은 int.parse() 작업을 감싸기 위해 try-catch 블록을 사용해야 합니다. try 섹션에서는 입력 문자열을 정수로 변환하고 그 제곱을 계산합니다. catch 섹션에서는 변환 중에 발생하는 모든 예외를 처리하고 적절한 에러 메시지를 표시합니다. 프로그램은 변환의 성공 여부와 관계없이 정상적으로 계속 실행되어야 합니다.

치트 시트

try-catch 블록을 사용하여 예외를 유연하게 처리하고 프로그램 충돌을 방지하세요:

try {
  // 예외가 발생할 수 있는 코드
  int number = int.parse("abc");
} catch (e) {
  // 예외가 발생할 때 실행되는 코드
  print("Something went wrong: $e");
}

try 블록은 잠재적으로 문제가 발생할 수 있는 코드를 포함하며, catch 블록은 발생하는 모든 예외를 처리합니다. 변수 e에는 예외에 대한 정보가 포함되어 있습니다.

직접 해보기

import 'dart:io';

void main() {
  // 입력 문자열 읽기
  String? input = stdin.readLineSync();
  
  // 처리 메시지 표시
  print('Processing input: $input');
  
  // TODO: 아래에 코드를 작성하세요
  // try-catch 블록을 사용하여 입력을 정수로 안전하게 변환하세요
  // 변환에 성공하면 제곱을 계산하세요
  // 변환 중 발생하는 모든 예외를 처리하세요
  
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

로직 & 흐름의 모든 레슨