Aquí hay varias cosas, una parse_url te devuelve un array, a menos que uses la segunda forma, pero de la forma que tienes jamás te va a funcionar, tienes que tener una variable con el URL a parsear:
Ahora lo que estas comparando es el hash # (o fragmento) para eso deberías de usar PHP_URL_FRAGMENT.
@Italico76 parse_url no genera exepciones por lo que el bloque try/catch no hace nada en este caso.
Saludos.