error() 함수
Coddy Lua 여정의 논리와 흐름 제어 섹션에 포함된 레슨. 54개 중 32번째.
때로는 문제가 발생했을 때 코드가 즉시 멈춰야 합니다. Lua는 오류를 발생시키고 스크립트 실행을 중단하는 error() 함수를 제공하여 이러한 상황을 처리합니다.
error() 함수는 인수로 메시지를 받아 프로그램을 중지하고, 무엇이 잘못되었는지 나타내기 위해 해당 메시지를 표시합니다. 기본 구문은 다음과 같습니다.
error("Something went wrong!")이는 함수 입력값을 검증할 때 특히 유용합니다. 예를 들어, 함수가 양수를 기대하지만 음수를 받는 경우 error()를 사용해 이후 실행을 막을 수 있습니다.
function calculateSquareRoot(num)
if num < 0 then
error("Cannot calculate square root of a negative number")
end
return math.sqrt(num)
enderror()가 호출되면 프로그램은 그 지점에서 즉시 멈추고 사용자가 지정한 오류 메시지를 표시합니다. 이를 통해 문제를 조기에 발견하고 무엇이 잘못되었는지 명확하게 알릴 수 있으므로, 코드를 더욱 안정적으로 만들고 디버깅하기 쉽게 할 수 있습니다.
error()는 함수가 잘못된 종류의 값과 함께 호출되는 경우처럼 실제 오류에 사용됩니다. 항목이 없거나 사용자 입력이 잘못된 경우처럼 호출자가 예상할 수 있는 실패에 대해 Lua 코드는 보통 오류를 발생시키지 않습니다. 대신 함수는 nil과 메시지를 반환하고, 호출자는 결과를 확인합니다.
function findItem(inventory, name)
if inventory[name] == nil then
return nil, "No item called " .. name
end
return inventory[name]
end
local count, err = findItem({potion = 3}, "sword")
if count then
print("You have " .. count)
else
print(err) -- sword라는 아이템이 없습니다
endLua의 기본 제공 함수도 같은 방식으로 작동합니다. tonumber("abc")는 nil을 반환하고, io.open()은 파일을 열 수 없을 때 nil과 메시지를 반환합니다.
직접 해보기
이 레슨에는 코드 챌린지가 없습니다.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름 제어의 모든 레슨
직접 연습해 보세요: 온라인 Lua 컴파일러