Entiendo cómo se usan, si es por RunTime o no, si es unchecked o checked.. Pero no entiendo para qué lo usaríamos? En el caso de las unchecked, supongo que es porque creemos que pueden aparecer ciertos tipos de errores y queremos que compile a pesar de. En el caso de las checked, osea que sabemos que va a haber un error, por qué no solucionamos el error en vez de pedir que compile igual?