Деление на 0 — это undefined behavior, а не исключительная ситуация. Его нельзя обработать, его можно только предотвратить.
Поэтому лучше всего, проверить if-ом что у вас хранится в b:
if (0 == b) throw std::domain_error("Деление на 0 невозможно");
Что касается исключений:
После блока try можно писать несколько блоков catch.
В catch в скруглых скобках пишется тип возникающей ошибки. Компилятор ищет первый подходящий catch и выполняет код описаный в этом блоке.
если указать в блоке catch в круглых скобках троеточие:
catch (...) {cout << "Деление на 0 невозможно" << endl;}
то получими "обобщающий" catch. Выполняется, при возникновении любой ошибки. Если ранее не был описан подходящий для данной ситуации catch.