Dúvida como mandar mensagem de erro ao invés do HTTP STATUS 500 java.nullpointer.exception

Tenho uma classe que conectar ao banco de dados e quando eu importo ela para conectar dentro do jsp da tudo certo, o problema e que eu estou tentando fazer emitir uma exception para que quando o nome ou senha do úsuario esteja errado ou não exista ao invés de apareçer (HTTP STATUS 500 javalang.nullpointerexception) apareça uma simples mensagem de erro.

Aqui está a minha classe de conexão com o banco.

[code]package classes;

import java.sql.*;

public class Conexao{
public Connection conectar(){

String url = "jdbc:postgresql://localhost/java_site"; // Quando modificar aqui exibir mensagem de erro para o usuario final ao invés do HTTP 500.
String usuario = "postgres"; // Quando modificar aqui exibir mensagem de erro para o usuarioi final ao invés do HTTP 500.
String senha = "maclar1m"; // Quando modificar aqui exibir mensagem de erro para o usuarioi final ao invés do HTTP 500.

try{
  Class.forName("org.postgresql.Driver").newInstance();
  Connection conn = DriverManager.getConnection(url, usuario, senha);
  return conn;
}
catch(NullPointerException nullerro)
{
  System.out.println("Usuario ou Senhas Inválidos "+nullerro.getMessage());
  return null;
}
catch(SQLException ex){
  System.out.println("SQLException: " + ex.getMessage());
  System.out.println("SQLState: " + ex.getSQLState());
  System.out.println("VendorError: " + ex.getErrorCode());
  return null;
}
catch(Exception e){
  System.out.println("Problemas ao tentar conectar com o banco de dados: " + e);
  return null;
}

}
}[/code]

e aqui está o meu jsp

[code]<%–
Document : index
Created on : 23/06/2012, 04:10:16
Author : Geyson
–%>

<%@page import=“java.sql.*”%>
<%@page contentType=“text/html” pageEncoding=“UTF-8” import=“classes.Conexao”%>

JSP Page

<% Conexao acesso = new Conexao();
            Connection caminho = acesso.conectar();

            if (caminho != null) {
                out.println("Conexão efetuada com sucesso!<br/>" + caminho);
            } else {
                out.println("Não foi possivel estabeleçer conexão.");
                finalize();
            }

            Statement st = caminho.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);

            ResultSet rs = st.executeQuery("select * from bairro order by bai_codigo");
           
        %>
     </p>

</h1>
[/code]

da maneira como está, ta conectando e exibindo a mensagem conexão realizada com sucesso, porém se eu modifico os valores do acesso ao banco ele exibe o HTTP STATUS 500 mais eu quero que exiba uma mensagem.

Sou iniciante, obrigado a todos que poderem me ajudar.

Seu problema está ocorrendo porque o método conectar está entrando no catch e retornando null. O jsp entra no else e acaba chamando o finalize.
Recomendo que você faça com servlets e evite usar <% %> nas suas páginas. Não é uma boa prática e pode te dar dor de cabeça quando seu sistema começar a crescer. MVC é uma boa pedida também.