WEB开发网
开发学院数据库Oracle 在 Oracle数据库上构建 .NET 应用程序 阅读

在 Oracle数据库上构建 .NET 应用程序

 2007-05-10 12:15:42 来源:WEB开发网   
核心提示: 图 6: 捕获到一个 ORA-12545 错误,并向用户显示,在 Oracle数据库上构建 .NET 应用程序(8),Oracle DBA 或开发人员很清楚 ORA-12545 的意义,但是最终用户不清楚, 在代码中,应该根据从特殊到一般的顺序对 Catch 语句排序, 一种更好的解决方案

图 6: 捕获到一个 ORA-12545 错误,并向用户显示。

Oracle DBA 或开发人员很清楚 ORA-12545 的意义,但是最终用户不清楚。 一种更好的解决方案是添加一条额外的 Catch 语句来捕获最常见的数据库错误并显示对用户友好的消息。

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 错误消息显示如下:

上一页  3 4 5 6 7 8 9 10  下一页

Tags:Oracle 数据库 构建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接