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 数据库 构建

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