Nun, wenn beim Wurf eine EX kein Fehlertext übergeben wird, muss er ja statisch sein. Denn er muss ja irgendwo herkommen. Du übergibst mit throw DivisionDurch0;
lediglich den Namen einer Klasse.
Mit throw std::Rechenfehler("Division durch null!")
hingegen ist die Sache klar.