Olá pessoal , será que vcs poderiam me ajudar…estou com um probleminha…na hora que compilo minha classe, ele dá o seguinte erro:
“unreported exception java.lang.ClassnotFoundException ;must be or declared to be thrown”
Class.forName(“org.postgresql.Driver”);
"^ "(este erro e embaixo do ponto nesta linha)
con = DriverManager.getConnection(url, user, senha);
"^ "(este erro e embaixo do ponto nesta linha)
ST_consultadados_assoc=con.createStatement();
"^ "(este erro e embaixo do ponto nesta linha)
O que quer dizer isso??
O que fiz de errado…
Observação:
ja esta declarado os seguites imports :
O método forName pode gerar uma Class ClassNotFoundException, e os outros dois métodos relacionados a banco de dados podem gerar uma SQLException.
Desta forma, é necessário colocar o código dentro de um bloco try/catch.
Exemplo:
try{
Class.forName("org.postgresql.Driver");
con = DriverManager.getConnection(url, user, senha);
ST_consultadados_assoc=con.createStatement();
} catch (Exception e) {
// tratamento da exceção
}
Throws:
LinkageError - if the linkage fails
ExceptionInInitializerError - if the initialization provoked by this method fails
ClassNotFoundException - if the class cannot be located
Eh muito importante pegar o costume de consultar sempre a API.
E quando for consultar a API, no caso da necessidade de blocos try/cacth, basta preocupar-se com o que está na linha da declaração do método:
forName
public static Class forName(String className)
throws ClassNotFoundException
Inclusive, não entendi muito bem como a classe só declara “throws ClassNotFoundException” (fui até olhar no código fonte) e pode estar lançando esses dois erros.
Para erros não aplica-se as regras de Exceptions?
Errors nao sao esperados, de maneira alguma, para ocorrerrem. Se ocorrer, eh porque a situacao ta realmente critica no sistema ou no compilador. Por “Errors” nao serem “checked” (derivam de java.lang.error ao inves de java.lang.Exception), o compilador nao vai pedir que voce manipule o problema. Errors, como RuntimeExceptions, nao sao para acontecer.
Creio que esta na declaracao da classe mais para fins de documentacao mesmo.