2010-06-21 9 views
0

Dans un fichier JSP Je reçois:Qu'est-ce qui provoque une erreur "Type attendu" dans JSP?

Type expected (found 'try' instead) 

Erreur lors d'une tentative de mettre en place une connexion. Cela me laisse avec deux questions. Qu'est-ce qui ne va pas ici? et plus généralement, quelles sont les causes des erreurs "Type attendu" dans JSP? Puisque je ne peux pas trouver une explication de l'erreur dans une recherche Google. Voici le code.

<%! 
class ThisPage extends ModernPage 
{ 
    try{ 
     Connection con=null; 
     PreparedStatement pstmt=null; 
     con = HomeInterfaceHelper.getInstance().getConnection(); 
     pstmt = con.prepareStatement("sql goes here"); 
     ResultSet rs = pstmt.executeQuery(); 
     con.close(); 
    } 
    catch (Exception e){ 
     System.out.println("sql error: exception thrown"); 
    } 
} 
%> 

Edité pour montrer plus de code

+3

On dirait que vous avez une erreur de syntaxe quelque part; pourriez-vous coller dans les quelques lignes avant le 'try'? – ZoogieZork

+0

Cela ressemble à un ';' pour moi sur la ligne avant d'essayer ... – Tommy

+0

Merci pour la suggestion Zoogie. Mais autre que l'inclut, c'est le fichier entier. Est-ce que cela pourrait être le problème? – Holtorf

Répondre

2

vous pouvez généralement pas ajouter un bloc try .. catch dans une déclaration de classe, vous devriez au moins mettre dans une méthode comme le constructeur de la classe ou d'un bloc static { }.

Je ne sais pas si la syntaxe JSP est différente, mais avez-vous essayé quelque chose comme:

class ThisPage extends ModernPage { 
    Connection con; 
    PreparedStatement pstmt; 


    ThisPage() { 
    try{ 
     con=null; 
     pstmt=null; 
     con = HomeInterfaceHelper.getInstance().getConnection(); 
     pstmt = con.prepareStatement("sql goes here"); 
     ResultSet rs = pstmt.executeQuery(); 
     con.close(); 
    } 
    catch (Exception e){ 
     System.out.println("sql error: exception thrown"); 
    } 
    } 
} 

Si vous regardez Java Language Specification vous pouvez voir qu'un TryStatement ne peut pas être inséré dans une déclaration de classe ..

+0

C'était exactement ce dont j'avais besoin, merci. – Holtorf

+0

Une alternative à ceci, est un bloc d'initialisation. Juste un autre '{' et '}' entourant le bloc 'try-catch'. – BalusC

Questions connexes