Что за чудеса творится с исключениями php?
Потому что варнинг это не исключение..
upd<?php
set_error_handler("warning_handler", E_WARNING);

echo 1/0;

function warning_handler($errno, $errstr) { 
	throw new Exception($errstr);
}
Деление на ноль генерирует ошибку, а не исключение.
Если нужно что бы генерировало - обрабатывайте сами.$callback = function() {
    throw new Exception('Деление на ноль') ;
};
set_error_handler($callback);
echo 1/0;