cancel
Showing results for 
Search instead for 
Did you mean: 

How to display which exception Is Raised?

Former Member
0 Kudos

Hi

Experts.

I am trying to connect my webDynpro with oracle.

I had already included Jar at both places.

now I want to display in exception that which error is coming?

I had already written <b> ex.printStackTrace(); </b>

but it is not working.

Code Is given Below.


Connection conn=null;
		try
		{
		wdComponentAPI.getMessageManager().reportException("after 0",false);
		Class.forName("oracle.jdbc.driver.OracleDriver");
		wdComponentAPI.getMessageManager().reportException("after 1st",false);
		DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
		wdComponentAPI.getMessageManager().reportException("after 2nd",false);
		conn =DriverManager.getConnection ("jdbc:oracle:thin:@Server IP:1521:adaniinframs","scott", "tiger");
		wdComponentAPI.getMessageManager().reportException("after 3",false);
		Statement stmt=conn.createStatement(); 
		wdComponentAPI.getMessageManager().reportException("after 4",false);
		ResultSet rs=stmt.executeQuery("select ename from emp where empno=7369"); // select statment
		wdComponentAPI.getMessageManager().reportException("after 5",false);
		while(rs.next())
		{
		wdComponentAPI.getMessageManager().reportException("after 6",false);
		IPrivateDatabaseConnectView.INodeEmpElement a = wdContext.createNodeEmpElement();
		a.setEmpName(rs.getString(1));
		a.setEmpJob(rs.getString(2));
		wdContext.nodeNodeEmp().addElement(a);
		}
		}
		catch(Exception ex)
		{ 
                ex.printStackTrace();
		
		}
 
		finally
		{
		 try
		{
		conn.close(); // closing the connection
		}
		catch(Exception e)
		{  
		ex.printStackTrace();
		}
		}   

Regards

Sunny.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

I don't think the user may see anything if you execute e.printStackTrace(); so what you have to do is report an exception with the text of the stack trace:

			
IWDMessageManager manager = wdComponentApi().getMessageManager();
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
e.printStackTrace(pw);
String message = sw.toString();
manager.reportException("Excepcition raised: " + message, false);

With this you will report the whole stack trace. If you want to get only the cause you will have to parse the message string. e.getMessage() should do this for you but if doesn't return anything quite often.

Former Member
0 Kudos

Thanks for your perfect ans.

Regards

Sunny.

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi

better you first use the

catch(SQLException sqe){

wdComponentAPI.getMessageManager().reportException("SQL Exception Occured.................: "+sqe.getMessage(),true);

System.out.println("SQLException cought........"+sqe);

}

Then use catch for general exception

catch(Exception ex){.............

............

}

Regards

Abhijith YS

Former Member
0 Kudos

Thanks For quick replies.

Both of your solution is working correctly.

Regards

Sunny.

former_member751941
Active Contributor
0 Kudos

Hi Sunny,

ex.printStackTrace(); will not work.

Try this

try

{

......

}

catch(Exception ex)

{

wdComponentAPI.getMessageManager().reportException("Given Exception : "+ex.getMessage(),true);

}

Regards,

Mithu