И это всё МОЁ

Добрый день, я что-то никак не могу понять в чем преимущество assert, вот читаю статьи где написано «выявление ошибок, ко-ко-ко». Ну допустим.
Есть у нас функция, которая там рассчитывает объем скачанного

int downloaded(int file_size, int downloaded ) {
return (downloaded*100/filesize);
}

вот тут допустим с assert
int downloaded(int file_size, int downloaded) {
assert(downloaded !=0 )
return (downloaded*100/filesize);
}

И грохнется все
а если без assert, сразу понятно, что ничего не скачалось и можно обработать код возврата -1
int downloaded (int file_size, int downloaded) {
if (!downloaded) return -1;
return (downloaded*100/filesize);
}