Code Smell 166 - 사용자 인터페이스의 낮은 수준 오류

치명적 오류: 포착되지 않은 오류: 클래스 'logs_queries_web'이/var/www/html/query-line.php:78에서 찾을 수 없음 스택 추적: #0 {main}이/var/www/html/query-line.php에서 발생함 라인 718

TL;DR: Catch your errors. Even the ones you don't expect.



문제


  • 보안
  • 오류 처리
  • 오류 로깅
  • 잘못된 UX 경험

  • 솔루션


  • 최상위 핸들러 사용
  • 선호하는 언어를 피하십시오
  • 예상 데이터베이스 및 하위 수준 오류

  • 문맥



    2022년에도 일반 사용자에게 스택이나 디버깅 메시지를 보여주는 "심각한"웹사이트를 볼 수 있습니다.

    샘플 코드



    잘못된




    
    <?
    
    
    
    Fatal error: Uncaught Error: Class 'MyClass' 
    
      not found in /nstest/src/Container.php:9
    
    

    오른쪽



    
    <?
    
    
    
    // A user-defined exception handler function
    
    function myException($exception) {
    
        logError($exception->description())
    
        // We don't show Exception to final users      
    
    }
    
    
    
    // Set user-defined exception handler function
    
    set_exception_handler("myException");
    
    

    발각



    [X] 자동

    돌연변이 테스트를 사용하여 문제를 시뮬레이션하고 문제가 올바르게 처리되는지 확인할 수 있습니다.

    태그


  • 보안

  • 결론



    우리는 계속 성숙해야 합니다.

    우리의 솔루션은 엉성해서는 안 됩니다.

    진지한 소프트웨어 엔지니어로서의 평판을 개선해야 합니다.

    처지







    더 많은 정보






    부인 성명



    코드 냄새는 그냥 내 .

    학점



    사진 제공: jesse orrico on Unsplash


    80 percent of my problems are simple logic errors. 80 percent of the remaining problems are pointer errors. The remaining problems are hard.



    마크 도너






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


    좋은 웹페이지 즐겨찾기