728x90
마이크로소프트의 최신 웹 기술의 향연, Remix 2009 행사 공지가 떴습니다.
본사에서 근무하는 시즌이라면 큰 무리 없이 (본사 바로 뒤편의 호텔이라...) 갈 수 있을텐데,
강남에 있다보니 영... 참석이 쉬워보이지가 않군요 ㅜ.ㅜ
* 참석 사전등록 : http://www.visitmix.co.kr/remix09/default.asp
- NoPD -
728x90
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()) { label1.Text = dr["dname"].ToString(); } } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } finally { // 객체 초기화 코드 }이러한 에러 핸들링 방식은 에러 발생시 무리 없이 에러를 처리할 수 있는 구조이긴 하지만, 사용자 친화적인 방식의 에러 처리라고 보기는 어렵습니다. 이러한 코드상에서 에러가 발생하는 경우 아래와 같이 불친절한 메세지가 사용자에게 출력되게 됩니다.
catch (OracleException ex) { switch (ex.Number) { case 1 : MessageBox.Show(" 중복된 데이터를 Insert 하고 있습니다 "); break; case 12545 : MessageBox.Show(" 데이터베이스를 사용할 수 없습니다 "); break; ... ... default : MessageBox.Show(" 처리되지 않은 데이터베이스 에러가 발생했습니다 : " + ex.Message.ToString(); break; } } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); }보다 상세하게 처리 로직을 추가한 위의 코드를 보면 catch 문이 2개가 사용된 것을 볼 수 있습니다. 오라클과 관련된 에러를 핸들링하는 catch 구문과 일반적인 에러를 핸들링하는 catch 구문이 그것입니다. 이와 같이 에러 메세지를 처리해 주면 사용자에게 보다 편안한 에러 메세지를 제공해 줄 수 있을 것입니다.