모듈:보호하다
Module| 이 모듈은 페이지 보호 대상입니다.이 모듈은 매우 많은 페이지에서 사용 중이거나 매우 자주 교체됩니다.파손이나 실수는 많은 페이지에 영향을 미치고 사소한 편집이라도 서버에 큰 부하가 걸릴 수 있으므로 편집으로부터 보호됩니다. |
| 이 Lua 모듈은 시스템메시지 및 약 232,000페이지에 사용됩니다. 이를 변경하면 Wikipedia 사용자 인터페이스가 즉시 변경될 수 있습니다. 중대한 중단과 서버 로드를 방지하려면 모듈의 /sandbox 또는 /testcase 서브페이지 또는 자체 모듈 샌드박스에서 변경을 테스트해야 합니다.테스트한 변경은 한 번의 편집으로 이 페이지에 추가할 수 있습니다.토크 페이지에서 변경 사항을 논의한 후 구현하십시오. |
이 메타모듈은 다른 모듈에서의 오류 처리를 단순화합니다.에러를 발생시킬 가능성이 있는 함수를 함수로 변환하고, 그 경우 지정된 에러 메시지를 반환합니다.
사용.
현지의 보호하다 = 요구하다('모듈:보호') 현지의 보호되고 있다펑크 = 보호하다(기능하다, errFormat(에러 포맷), 옵션들) 논쟁들
func- 변환할 함수.
errFormat(디폴트:'Error: %s')- 커스텀 에러 메시지
- 사용하다
'%s'검출된 에러로부터의 메시지를 포함합니다.
options– 다음 필드가 포함된 옵션 테이블:raw(디폴트: false)- true일 경우 그대로 사용됩니다.그렇지 않을 경우 태그 안에 래핑됩니다.
<strong class="error">.
- true일 경우 그대로 사용됩니다.그렇지 않을 경우 태그 안에 래핑됩니다.
removeLocation(디폴트: true)- true일 경우 검출된 오류 메시지에서 위치 정보를 삭제합니다.
반환값
그 결과protectedFunc는 원래 함수를 호출하여 모든 인수를 전달하고 모든 반환값을 반환하는 함수입니다.가 오류를 발생시키면 지정된 오류 메시지가 대신 반환됩니다.
예
현지의 보호하다 = 요구하다('모듈:보호') 현지의 p = {} 기능. p.주된(틀) 한다면 것은 아니다. 틀.args[1] 그리고나서 에러('인수 변경') 끝. 돌아가다 틀.args[1] 끝. p.주된 = 보호하다(p.주된) 돌아가다 p 인수 없이 메인 함수를 호출하면 다음과 같이 출력됩니다.오류: 인수 누락
현지의 기능. 프로세스 결과(옵션들, 성공., ...) 한다면 것은 아니다. 성공. 그리고나서 현지의 메세지 = 스트링(... 또는 '(메시지 없음)') 한다면 옵션들.삭제 장소 그리고나서 메세지 = string.gsub(메세지, '^모듈:[^:]+:%d+:', '', 1) 끝. 돌아가다 string.format(옵션들.errFormat(에러 포맷), 메세지) 끝. 돌아가다 ... 끝. 현지의 기능. 보호하다(기능하다, errFormat(에러 포맷), 옵션들) 한다면 유형(errFormat(에러 포맷)) == '테이블' 그리고나서 옵션들 = 옵션들 또는 errFormat(에러 포맷) errFormat(에러 포맷) = 제로 끝. 옵션들 = 음.클론(옵션들) 또는 {} 옵션들.errFormat(에러 포맷) = errFormat(에러 포맷) 또는 옵션들.errFormat(에러 포맷) 또는 '오류: %s' 한다면 것은 아니다. 옵션들.날것의 그리고나서 옵션들.errFormat(에러 포맷) = '<strong class="error">' .. 옵션들.errFormat(에러 포맷) .. '</strong>' 끝. 옵션들.삭제 장소 = 옵션들.삭제 장소 == 제로 또는 옵션들.삭제 장소 돌아가다 기능. (...) 돌아가다 프로세스 결과(옵션들, pcall(기능하다, ...)) 끝. 끝. 돌아가다 보호하다