Erro de compilação!

4 respostas
P

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 :

import java.sql.;
import java.iol.
;

Valeu pessoal!

Felipe.

4 Respostas

Bani

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 }

Rafael_Steil

De acordo com a API do JDK para a classe Class:

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.

Rafael

Bani

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?

Rafael_Steil

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.

Rafael

Criado 17 de fevereiro de 2003
Ultima resposta 18 de fev. de 2003
Respostas 4
Participantes 3