Потому что когда вы что-то бросаете и что-то перехватываете, «SetUnhandledExceptionFilter» не будет использоваться. Поэтому я предполагаю, что некоторые исключения, которые вы выбрасываете, отлавливаются либо вами, либо какой-то библиотекой (или чем-то еще), которую вы используете.
int main(){
try {
//exception 1 thrown
} catch (...){
// exception 1 handling
}
// exception 2 thrown
}
// no catch for exception 2, use UnhandledExceptionFilter