Sobes.tech
Junior

Aký je rozdiel medzi pojmami R a výnimkami?

sobes.tech AI

Odpoveď od AI

V programovaní, vrátane Flutter, R zvyčajne označuje návratovú hodnotu funkcie, ktorá oznamuje výsledok vykonania, napríklad chybový kód alebo úspešné dokončenie. Je to bežný spôsob prenosu informácií o stave bez prerušenia toku vykonávania.

Výnimky (exceptions) sú mechanizmom spracovania chýb, pri ktorom sa pri vzniku chyby vykonávanie programu preruší a kontrola sa prenesie na blok spracovania výnimiek (try-catch). Výnimky umožňujú oddeliť hlavný kód od kódu spracovania chýb a vhodne reagovať na neočakávané situácie.

Hlavné rozdiely:

  • Vrátenie hodnoty (R) vyžaduje, aby volajúci kód skontroloval výsledok a sám sa rozhodol, čo robiť pri chybe.
  • Výnimky automaticky preruší normálny tok a prenesie kontrolu na spracovateľa, čo zjednodušuje spracovanie chýb, ale môže sťažiť pochopenie toku.

Príklad v Dart (Flutter):

int divide(int a, int b) {
  if (b == 0) return -1; // R - chybový kód
  return a ~/ b;
}

int divideWithException(int a, int b) {
  if (b == 0) throw ArgumentError('Delenie nulou');
  return a ~/ b;
}

void main() {
  var result = divide(10, 0);
  if (result == -1) {
    print('Chyba: delenie nulou');
  }

  try {
    var res = divideWithException(10, 0);
  } catch (e) {
    print('Výnimka zachytená: $e');
  }
}