[클린코드] 오류처리

2015. 7. 2. 14:05·개인/책

 

오류처리

 

오류 코드보다 예외를 사용하라.

-       논리와 오류 코드가 뒤섞이지 않게 하라.

Try-Catch-Finally 문부터 작성하라.

미확인 예외를 사용하라(런타임 익셉션을 사용하라.)

-       checked 익셉션이 제공하는 장점보다는 단점이 더 많다.

예외에 의미를 제공하라.

호출자를 고려해 예외 클래스를 정의하라.

-       외부 API를 이용할 때 래퍼(Wrapper) 클래스를 이용하여 의존성을 줄여준다.

정상 흐름을 정의하라.

-       특수 사례 패턴을 이용하여 예외적인 상황을 캡슐화해서 처리하도록 한다.

n  반환할 값이 없을 때 익셉션을 던지지 않고, 기본값을 가진 객체를 반환하도록 한다.

null을 반환하지 마라.

-       null 을 반환하기 보다는 예외를 던지거나 특수 사례 객체를 반환한다.

null을 전달하지 마라.

 

깨끗한 코드는 읽기도 좋아야 하지만 안전성도 높아야 한다.

오류 처리를 프로그램 논리와 분리하면 독립적인 추론이 가능해지며 코드 유지보수성도 크게 높아 진다.

 

반응형
저작자표시 비영리 (새창열림)

'개인 > 책' 카테고리의 다른 글

[클린코드] 시스템, 창발성  (0) 2015.07.02
[클린코드] 경계, 단위 테스트, 클래스  (0) 2015.07.02
[클린코드] 객체와 자료 구조  (0) 2015.07.02
[클린코드] 형식 맞추기  (0) 2015.07.02
[클린코드] 주석  (0) 2015.07.01
'개인/책' 카테고리의 다른 글
  • [클린코드] 시스템, 창발성
  • [클린코드] 경계, 단위 테스트, 클래스
  • [클린코드] 객체와 자료 구조
  • [클린코드] 형식 맞추기
hs_seo
hs_seo
Hello World!
    반응형
  • hs_seo
    개발자로 살아남기
    hs_seo
  • 전체
    오늘
    어제
    • 전체 (1140)
      • 개발자 (21)
        • 개발에 유의할 점 (0)
        • 면접 (5)
      • IT 소식 (5)
        • 업계 (1)
      • java (51)
        • 디자인패턴 (3)
        • apache-common (1)
      • 개념 (47)
        • 자료구조 (4)
        • 함수형사고 (8)
        • 디자인패턴 (1)
      • 데이터분석 (1)
      • python (67)
        • 코드조각 (12)
        • 라이브러리 (2)
      • 빅데이터 (418)
        • zookeeper (5)
        • hadoop (78)
        • hdfs (12)
        • hive (127)
        • hbase (16)
        • spark (40)
        • scala (4)
        • trino (3)
        • oozie (41)
        • Hue (9)
        • R (5)
        • sqoop (6)
        • flume (3)
        • elasticsearch (2)
        • airflow (16)
        • kafka (3)
        • kubernetes (10)
        • openstack (3)
        • flink (2)
        • redis (2)
      • 빅데이터 강좌 (2)
      • 알고리즘 (131)
        • 알고리즘 (1)
        • 백준 (61)
        • 정올 (41)
        • 더블릿 (5)
        • 프로그래머스 (1)
      • 프로그래밍 언어 (30)
        • go (4)
        • js (9)
        • .Net (6)
        • Jsp (1)
        • ansible (3)
        • terraform (6)
      • Tools (56)
        • docker (2)
        • macbook (6)
        • maven (3)
        • sublime (1)
      • 프레임워크 (25)
        • [JS] angularjs (2)
        • [JS] node.js (19)
        • [Java] spring (2)
        • Android (2)
      • 데이타베이스 (43)
        • SQLD (5)
        • Oracle (1)
        • MySQL (8)
        • ADsP (2)
      • 리눅스 (25)
        • Bash (61)
      • GCP (5)
      • AWS (34)
        • EC2 (2)
        • EMR (14)
      • 정보보안기사 (4)
        • 네트워크 (1)
      • 개인 (80)
        • 업무실수 (0)
        • 책 (9)
        • 교육 (3)
        • 여행 (17)
        • 영화 (12)
        • 음악 (2)
        • 피규어 (4)
        • 게임 (3)
        • 생각 (7)
        • 기타 (10)
        • 좋은글 (5)
        • 좋은 사이트 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

    • 빅데이터-하둡,하이브로 시작하기
    • 빅데이터-스칼라, 스파크로 시작하기
    • Kaggle에서 파이썬으로 데이터 분석 시작하기
    • 쉘스크립트 개발 시작하기
    • 개발자가 데이터 분석 준전문가 되기
    • 데브쿠마
  • 공지사항

  • 인기 글

  • 태그

    하이브
    파이썬
    yarn
    SPARK
    nodejs
    Linux
    다이나믹
    Hadoop
    하둡
    hbase
    error
    bash
    airflow
    mysql
    emr
    Python
    S3
    ubuntu
    java
    k8s
    Tez
    오류
    build
    HIVE
    AWS
    HDFS
    정올
    알고리즘
    백준
    oozie
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
hs_seo
[클린코드] 오류처리
상단으로

티스토리툴바