buenas...
lo primero, errores y excepciones. según como yo los veo... en realidad no son lo mismo. un error sucede por mal uso de la herramienta, en este caso del lenguaje. por ejemplo, cuando no escribes correctamente la sintaxis de una instrucción. además, un error de este grado se puede corregir. en cambio, una excepción es una violación a unas normas establecidas —diria yo— a nivel de estructura de datos o implementación. por ejemplo, cuando haces un request con XMLHttpRequest a un dominio externo, el navegador levanta una excepción DOM NETWORK_ERR porque viola las normas establecida por el estándar. otro ejemplo, HIERARCHY_REQUEST_ERR sucede cuando intentas agregar un nodo a un documento que no le pertenece a si mismo. es decir imaginas tienes dos documentos HTML y a través del DOM intentas mover un nodo de un documento a otro. dicha instrucción es ilegal. generalmente, no hay una forma directa de corregir dicha excepción. quiero decir que... a través del método que se intenta realizar no se puede lograr.
Cita: Hasta donde entiendo los errores suceden sin esperarlos
en mi opinión, se supone que no. se supone que como conocedor de la herramienta, debemos saber como utilizarla y conocer sus límites. las excepciones son necesarias para no comprometer la integridad de las cosas. por ejemplo, tu podrás hacer una instrucción válida a nivel de sintaxis pero no válida a nivel de implementación o normas —tal como los ejemplos anteriores.