Можете ли вы указать обработчик try без перехвата или, наконец, блокировать в ES?

Есть ли способ определить блок try без перехвата в JavaScript?

Компилятор жалуется следующим кодом:

try {
    const newAPI = require("applicationutils");
}

К вашему сведению Месяц за месяцем вводятся новые API. В моем случае, если API доступен, я хочу новый курс действий. Если они недоступны, я буду использовать настройки по умолчанию. Мне не нужен блок улова. Я просто хочу знать, возможно ли это.

Если класс не существует, код выдает ошибку, поэтому он должен быть заключен в блок catch.

Всего 2 ответа


Невозможно использовать try без catch и / или finally . В соответствии с MDN попробуйте ... поймать :

Оператор try состоит из блока try , который содержит один или несколько операторов. {} всегда должен использоваться, даже для отдельных операторов. Должно присутствовать хотя бы одно предложение catch или предложение finally . Это дает нам три формы для оператора try :

try...catch
try...finally
try...catch...finally

Вы можете сделать что-то, что представляет область блока без ключевого слова try :

function foo() {
    // Block scope in function scope
    {
        const newAPI = require("applicationutils");

       // newAPI is unique to this block
       // Exceptions can be thrown and caught outside of foo()
    }

    // Another block defined in same function scope
    {
        const newAPI = require("applicationutils");

       // newAPI is unique to this block
       // Exceptions can be thrown and caught outside of foo()
    }

}