扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:John Paul Cook 来源:Oracle中国 2007年10月22日
关键字: ORACLE
在本页阅读全文(共5页)
Dim conn As New OracleConnection(oradb) ' VB.NET
Try
conn.Open()
Dim cmd As New OracleCommand
cmd.Connection = conn
cmd.CommandText = "select dname from dept where deptno = " + TextBox1.Text
cmd.CommandType = CommandType.Text
If dr.Read() Then
Label1.Text = dr.Item("dname") ' or use dr.Item(0)
End If
Catch ex As Exception ' catches any error
MessageBox.Show(ex.Message.ToString())
Finally
conn.Dispose()
End Try
OracleConnection conn = new OracleConnection(oradb); // C#
try
{
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "select dname from dept where deptno = " + textBox1.Text;
cmd.CommandType = CommandType.Text;
if (dr.Read()) // C#
{
label1.Text = dr.GetString(0);
}
}
catch (Exception ex) // catches any error
{
MessageBox.Show(ex.Message.ToString());
}
finally
{
conn.Dispose();
}
虽然这种方法将适当地捕获尝试从数据库中获取数据时发生的任何错误,但这种方法对用户却不友好。 例如,看看下面这条在数据库不可用时显示的消息。 |
| 图 6: 捕获到一个 ORA-12545 错误,并向用户显示。 |
Catch ex As OracleException ' catches only Oracle errors
If InStr(1, ex.Message.ToString(), "ORA-1:", CompareMethod.Text) Then
MessageBox.Show("Error attempting to insert duplicate data.")
ElseIf InStr(1, ex.Message.ToString(), "ORA-12545:", CompareMethod.Text) Then
MessageBox.Show("The database is unavailable.")
Else
MessageBox.Show("Database error: " + ex.Message.ToString())
End If
Catch ex As Exception ' catches any error
MessageBox.Show(ex.Message.ToString())
catch (OracleException ex) // catches only Oracle errors
{
switch (ex.Number)
{
case 1:
MessageBox.Show("Error attempting to insert duplicate data.");
break;
case 12545:
MessageBox.Show("The database is unavailable.");
break;
default:
MessageBox.Show("Database error:" + ex.Message.ToString());
break;
}
}
catch (Exception ex) // catches any error
{
MessageBox.Show(ex.Message.ToString());
}
注意上面的代码示例中的两条 Catch 语句。 如果没有捕获到任何 Oracle 错误,那么将跳过第一条 Catch 语句分支,让第二条 Catch 语句来捕获其他任何类型的错误。 在代码中,应该根据从特殊到一般的顺序对 Catch 语句排序。 在实施了对用户友好的异常处理代码之后,ORA-12545 错误消息显示如下: |
| 图 7: 针对 ORA-12545 错误的对用户友好的消息 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。