Com o objetivo de tratar exceções e controlar erros, em tempo de execução, algumas linguagens implementam alguns mecanismos interessantes, como por exemplo Go, que você pode trabalhar com funções de retornos múltiplos para passar erro e dados em caso de sucesso; e Bash que se trata erros quando o exit do programa é maior que zero 0, já que zero significa sucesso, sem falar no "exception" de comandos encadeados com &&. Agora vamos falar sobre como JavaScript faz isso.
Bom, pra começar, as exceções são utilizadas como uma forma de feedback, para cógido saber o que fazer quando cair numa situação de erro. Agora você precisa entender que os statements (declarações, ou "comandos") e os objetos citados aqui são coisas separadas, apesar de funcionar em conjunto. Mais precisamente, vamos falar sobre 3 coisas: