Illegal start of expression [era Help...]

4 respostas
M

To estudando java e uso o JCreator. Tenho o seguinte código para “compilar” e apresenta 2 erros, por enquanto ,como segue. ALGUÉM PODE ME AJUDAR A SOLUCIONÁ-LOS E SE PORVENTURA OS OUTROS QUE HOUVER? OBRIGADO

import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class TableDisplay extends JFrame
{
	private Connection connection;
	private JTable table;
	public TableDisplay()
	{
		String url="jdbc:odbc:Books";
		String username="anonymous";
		String password="guest";
		try
		{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
connection=DriverManager.getConnection(url, username, password);
		}
		catch(ClassNotFoundException cnfex)
		{
			System.err.println("Failed to load JDBC/ODC DRIVER.");
			cnfex.printStackTrace();
			System.exit(1);
		}
		catch(SQLException sqlex)
		{
			System.err.println("UNABLE TO CONNECT");
			sqlex.printStackTrace();
		}
		getTable();
		setSize(450,150);
		show();
	}//fim TableDisplay
	
	private void getTable()
	{
		Statement statement;
		ResultSet resultset;
		try
		{
			String query="SELECT * FROM Authors";
			statement=connection.createStatement();
			resultset=statement.executeQuery(query);
			displayResultSet(resultset);
			statement.close();
		}
		catch(SQLException sqlex)
		{
			sqlex.printStackTrace();
		}
	}//fim private void getTable()
	
	private void displayResultSet(ResultSet rs)
	{
		throws SQLException  [color=blue]//O SEGUINTE ERRO AQUI (illegal start of expression)
		[/color]	boolean moreRecords=rs.next();
 			if(!moreRecords)
 			{
				JOptionPane.showMessageDialog(this, "RESULTSET CONTAINED NO RECORDS");
				setTitle("NO RECORDS TO DISPLAY");
				return;
			}
		setTitle("AUTHORS TABLE FROM BOOKS");
		Vector columnHeads=new Vector();
		Vector rows=new Vector();
		
		try
		{
			ResultSetMetaData rsmd=rs.getMetaData();
		
			for(int i=1;i<=rsmd.getColumnCount(); ++i)
			{
				columnHeads.addElement(rsmd.getColumnName(i));
			}
			do
			{
				rows.addElement(getNextRow(rs, rsmd));
			}while(rs.next());
			table=new JTable(rows, columnHeads);
			JScrollPane scroller=new JScrollPane(table);
			getContentPane().add(scroller, BorderLayout.CENTER);
			validate();
		}
		catch(SQLException sqlex)
		{
			sqlex.printStackTrace();
		}
	}//fim private void displayResultSet(ResultSet rs)
	
	private Vector getNextRow(ResultSet rs, ResultSetMetaData rsmd)
	{
		throws SQLException  //[color=red]O SEGUINTE ERRO AQUI (illegal start of expression)[/color]
	
			Vector currentRow=new Vector();
			
			for(int i=1; i<=rsmd.getColumnCount(); ++i)
			{
				switch(rsmd.getColumnType(i))
				{
					case Types.VARCHAR:
					currentRow.addElement(rs.getString(i));
					break;
					
					case Types.INTEGER:
					currentRow.addElement(new Long(rs.getLong(i)));
					break;
					
					default:
					System.out.println("TYPE WAS: "+rsmd.getColumnTypeName(i));
				}
			}
				return currentRow;
	}//fim private Vector getNextRow(ResultSet rs, ResultSetMetaData rsmd)

	public void shutDown()
	{
		try
		{
			connection.close();
		}
		catch(SQLException sqlex)
		{
			System.err.println("UNABLE TO DISCONNECT");
			sqlex.printStackTrace();
		}
	}//fim public void shutDown()
	
		public static void main(String args[])
		{
			final TableDisplay app=new TableDisplay();
			app.addWindowListener(new WindowAdapter()
			{
				public void windowClosing(WindowEvent e)
				{
					app.shutDown();
					System.exit(0);
				}
			} );
		}
}//fim da classe

[color=red]colocado a tag code e mudado o título, mais atenção na próxima :wink: -> Shoes[/color]

4 Respostas

B

Cara no local dos seus erros vc está fechandos as chaves antes de throws SQLException tente assim:

private void displayResultSet(ResultSet rs) throws SQLException {

// seu codigo

}
Java_Vinicius_Machin

Bom acho que a dica a seguir é mais construtiva (mas mesmo assim não deixe de estudar o tratamento de exceções na linguagem java):

se o seu método “propaga” (dispara, lança…) uma PutzException sua assinatura deve ser assim:

public void meuMetodoDoPutz( String PutzGrila ) throws PutzException 
{
   throw new PutzException();
}

e ae melhorou ? acho que seu problema era com a sintaxe! :mrgreen:

Diogenes

Pô, será q vai ser necessária uma campanha “coloque seu código entre tags code??? :?

Putz!

pcalcado

Quando vc for postar codigo, coloque-o entre as tags [ code] e [ /code], assim ele ficará endentado.

Diogenes, da uma estrelinha pra todo cidadao que colcoar sem code :mrgreen:

Criado 14 de junho de 2005
Ultima resposta 15 de jun. de 2005
Respostas 4
Participantes 5