Code Smell 165 - 빈 예외 블록

On Error resume next는 첫 직장에서 처음 배운 것입니다.

TL;DR: Don't avoid exceptions. Handle Them.



문제



  • 원칙 위반

  • 솔루션


  • 예외를 포착하고 명시적으로 처리합니다
  • .

    문맥



    프로그래밍 초기에는 오류 처리 전에 실행되는 시스템에 특권을 부여했습니다.

    우리는 진화했습니다.

    샘플 코드



    잘못된




    # bad
    import logging
    
    def send_email(): 
      print("Sending email") 
      raise ConnectionError("Oops")
    
    try:
      send_email() 
    except: 
      # AVOID THIS
    pass
    

    오른쪽



    import logging
    
    logger logging.getLogger(__name___)
    try:
      send_email()
    except ConnectionError as exc:
      logger.error(f"Cannot send email {exc}")
    

    발각



    [X] 자동

    많은 린터가 빈 예외 블록에 대해 경고합니다.

    예외



    예외를 건너뛰고 무시해야 하는 경우 명시적으로 문서화해야 합니다.

    태그


  • 예외

  • 결론



    오류를 처리할 준비를 합니다.

    아무것도 하지 않기로 결정하더라도 이 결정에 대해 명시적이어야 합니다.

    처지







    더 많은 정보






    On Error Resume Next Package

    부인 성명



    코드 냄새는 그냥 내 .

    학점



    사진 제공: James Best on Unsplash

    고맙습니다 @






    얀 자코멜리









    당신은 확실히 할 수 있습니다 👍


    오후 13:19 - 2022년 9월 17일











    Optimization hinders evolution. Everything should be built top-down, except the first time. Simplicity does not precede complexity, but follows it.



    앨런 펄리스






    이 기사는 CodeSmell 시리즈의 일부입니다.


    좋은 웹페이지 즐겨찾기