Bacanje različitih tipova izuzetaka u JavaScript

Hajde da bacimo svoj izuzetak i da vidimo, kako će se objekat sa greškom ponašati u ovom slučaju:

javascripttry {
  throw new Error('tekst izuzetka');
} catch (error) {
  console.log(error.name); // 'Error'
  console.log(error.message); // 'tekst izuzetka'
}

Kao što vidite, tip našeg izuzetka je 'Error'. Isti tip će imati svi izuzeci bačeni na sličan način. Ovo, međutim, neće uvek biti zgodno, jer, ako možemo imati nekoliko izuzetaka, nećemo moći da ih razlikujemo jedne od drugih.

U JavaScript-u je predviđeno rešenje za ovaj problem: mogu se bacati izuzeci ne samo tipa Error, već i bilo kog ugrađenog u JavaScript tipa greške, na primer, TypeError, SyntaxError, RangeError.

Hajde za primer da bacimo izuzetak tipa SyntaxError:

javascripttry {
  throw new SyntaxError('tekst izuzetka');
} catch (error) {
  console.log(error.name); // 'SyntaxError'
  console.log(error.message); // 'tekst izuzetka'
}
Задание 1

Bacite izuzetak tipa TypeError.

Задание 2

Bacite izuzetak tipa SyntaxError i RangeError. Uhvatite ove izuzetke pomoću jednog bloka try. U bloku catch prikažite različite poruke o grešci za izuzetke različitih tipova.