Почему я не могу использовать try и catch в разных частях кода?
Во-первых, у вас тут не хватает кавычки
$bd_type="mysql";
$db_name="вфвфф";
$db_host="ываыва;
$db_user="вввв";
$db_pass="жужужжу";
$db_charset="utf8234222";

А во-вторых, try..catch - это именно обработка исключения, а генерирование исключения делается с помощью throw.

Использовать try и catch раздельно невозможно, т.к. это две части одной конструкции. Обрабатывать исключения нужно так:
function testException()
{
   throw new Exception('Что-то тут не так'); // Генерируем исключение
}

try {
   testException();
} catch (Exception $e) {
   // Обрабатываем его
  echo $e->getMessage(), PHP_EOL;
}
Если не обращать внимание на дурацкий пример (PDO прекрксно без твоей помощи справится с выбросом исключения, и echo $ex->getMessage();die(); - это полная бессмыслица, поскольку пхп опять же выведет сообщение об ошибке без твоей помощи) то ты просто не туда поставил закрывающую скобку. она должна быть  перед catch
try {
        $db=new PDO($DSN, $db_user, $db_pass, $pdo_opt);

?>
бла блa бла
<?

} catch(Exception $ex) {
    обработка исключения
}
В общем, оставь пока исключения в покое, тебе не надо их ни бросать, ни ловить.