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');
}
}