nothrow new in cpp

#include <iostream>
#include <new>

int main() {
    int* arr;

    try {
        arr = new int[5];
    } catch (const std::bad_alloc& e) {
        std::cerr << "Allocation failed: " << e.what() << '\n';
        return 1;
    }

    for (int i = 0; i < 5; ++i) {
        arr[i] = i;
    }

    for (int i = 0; i < 5; ++i) {
        std::cout << arr[i] << ' ';
    }

    delete[] arr;

    return 0;
}