Обработка ошибок и исключений

Последнее обновление: 02.03.2024

C++

C#

Dart

F#

JavaScript

Kotlin

Python

C++

#include <iostream> 
#include <vector>
 
int main()
{
    try
    {
        std::vector<int> numbers{};
        // функция vector::at() генерирует исключение типа std::out_of_range
        std::cout << numbers.at(10) << std::endl;
    }
    catch (const std::exception& err)
    {
        std::cerr << err.what() << std::endl;
    }
    std::cout << "End" << std::endl;
}

C#

try
{
    List<int> numbers = new();
    // Обращение по индексу numbers[10] генерирует исключение типа IndexOutOfRange
    Console.WriteLine(numbers[10]);
}
catch (Exception e)
{
    Console.WriteLine(e.Message);
}
finally{
    Console.WriteLine("End");
}

Dart

void main (){
      
     try{
        var numbers =[];
        // генерирует ошибку RangeError
        print(numbers[10]);
    }
    on Error catch(err){
         print(err);
    }
    print("End");
}

F#

try
    let numbers: int list = []
    // Обращение по индексу numbers[10] генерирует исключение типа IndexOutOfRange
    printfn "%d" numbers[10]
with 
| e -> printfn "%s" e.Message

printfn "End"

В F# try..with может возвращать значение по умолчанию, если произошла ошибка:

let numbers: int list = []

let result =
    try
        // Обращение по индексу numbers[10] генерирует исключение
        numbers[10]
    with 
    | _ -> 22

printfn "%d" result

JavaScript

try
{
    // при обращении к необъявленной переменной генерируется исключение ReferenceError
    console.log(numbers[10]);
}
catch (e)
{
    console.error(e);
}
finally{
    console.log("End");
}

Kotlin

fun main() {
    try {
        var numbers = listOf<Int>();
        // Обращение по индексу numbers[10] генерирует исключение типа ArrayIndexOutOfBoundsException
        println(numbers[10]);
    }
    catch (e:Exception){
        println(e.message);
    }
    finally{
        println("End");
    }
}

В Kotlin try..catch может возвращать значение по умолчанию, если произошла ошибка:

fun main() {
    var numbers = listOf<Int>();

    val result = try {
        numbers[10] // возвращаем элемент списка
    }
    catch (e:Exception){
        println(e.message);
        22      // значение по умолчанию
    }

    println(result) // 22
}

Python

numbers = []
try:
    # Обращение по индексу numbers[10] генерирует исключение типа IndexError
    print(numbers[10])
except BaseException as e:
    print(e)
finally:
    print("End")

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850