Исключения для исключительных ситуаций, у вас же вполне штатная, предсказуемая ситуация, так что исключения тут не совсем подходящий вариант.
Если у вас будет 5 if, в которых проверяются разные ошибки заполнения формы - можете просто наполнять массив ошибок
$errors = [];
if (no_login()) {
$errors[] = 'Не указан логин';
}
а в конце проверять, есть ли ошибки
if ($errors) {
show_errors($errors);
}
goto использовать можно, в аду не горят, но крайне нежелательно, код превращается в месиво прыжков непонятно куда с непонятно какими доступными переменными. Вместо goto хорошо использовать ООП и методы - тогда вы в любой момент можете вызвать любой метод, чтобы отобразить ошибку или ещё что-то. В вашем случае вызвать отображение HTML, и передать в метод $message как аргумент явно.