개요
Autodesk Maya에서 Python을 사용할 때 RuntimeError는 실행 시간에 발생하는 오류를 나타냅니다.
이 오류는 주로 잘못된 명령어 사용, 존재하지 않는 객체 참조, 속성 설정 오류 등 다양한 상황에서 발생할 수 있습니다.
RuntimeError는 Maya 스크립트와 도구의 디버깅 및 예외 처리를 위해 중요합니다.
발생 원인
Maya Python에서 RuntimeError가 발생하는 주요 원인은 다음과 같습니다:
- 존재하지 않는 객체 참조
- 잘못된 속성 설정
- 명령어 사용 오류
- 잘못된 데이터 타입
- 파일 접근 오류
- 기타 실행 시간 오류
1. 존재하지 않는 객체 참조
import maya.cmds as cmds
try:
cmds.select('nonExistentObject')
except RuntimeError as e:
print(f"RuntimeError 발생: {e}")
2. 잘못된 속성 설정
import maya.cmds as cmds
# 구체 생성
sphere = cmds.polySphere(name='mySphere')[0]
try:
cmds.setAttr('mySphere.nonExistentAttribute', 10)
except RuntimeError as e:
print(f"RuntimeError 발생: {e}")
3. 명령어 사용 오류
import maya.cmds as cmds
try:
cmds.nonExistentCommand()
except RuntimeError as e:
print(f"RuntimeError 발생: {e}")
4. 잘못된 데이터 타입
import maya.cmds as cmds
# 구체 생성
sphere = cmds.polySphere(name='mySphere')[0]
try:
cmds.setAttr('mySphere.translateX', 'wrongType')
except RuntimeError as e:
print(f"RuntimeError 발생: {e}")
5. 파일 접근 오류
import maya.cmds as cmds
try:
cmds.file('nonExistentFile.mb', open=True)
except RuntimeError as e:
print(f"RuntimeError 발생: {e}")
예제
예제 1: 존재하지 않는 객체 참조
import maya.cmds as cmds
try:
cmds.select('nonExistentObject')
except RuntimeError as e:
print(f"RuntimeError 발생: {e}")
예제 2: 잘못된 속성 설정
import maya.cmds as cmds
# 구체 생성
sphere = cmds.polySphere(name='mySphere')[0]
try:
cmds.setAttr('mySphere.nonExistentAttribute', 10)
except RuntimeError as e:
print(f"RuntimeError 발생: {e}")
예제 3: 명령어 사용 오류
import maya.cmds as cmds
try:
cmds.nonExistentCommand()
except RuntimeError as e:
print(f"RuntimeError 발생: {e}")
예제 4: 잘못된 데이터 타입
import maya.cmds as cmds
# 구체 생성
sphere = cmds.polySphere(name='mySphere')[0]
try:
cmds.setAttr('mySphere.translateX', 'wrongType')
except RuntimeError as e:
print(f"RuntimeError 발생: {e}")
예제 5: 파일 접근 오류
import maya.cmds as cmds
try:
cmds.file('nonExistentFile.mb', open=True)
except RuntimeError as e:
print(f"RuntimeError 발생: {e}")
예외 처리
RuntimeError는 Python의 내장 예외 클래스입니다.
Maya Python 스크립트에서 RuntimeError를 처리하기 위해 try–except 블록을 사용할 수 있습니다.
기본 예외 처리
import maya.cmds as cmds
try:
# 실행할 코드
cmds.select('myObject')
except RuntimeError as e:
print(f"RuntimeError 발생: {e}")
예외 메시지 로그
import maya.cmds as cmds
import logging
# 로깅 설정
logging.basicConfig(filename='maya_runtime_errors.log', level=logging.ERROR)
try:
cmds.select('nonExistentObject')
except RuntimeError as e:
logging.error(f"RuntimeError 발생: {e}")
print(f"RuntimeError 발생: {e}")
예외 재발생
import maya.cmds as cmds
def select_object(obj_name):
try:
cmds.select(obj_name)
except RuntimeError as e:
print(f"RuntimeError 발생: {e}")
raise
try:
select_object('nonExistentObject')
except RuntimeError as e:
print(f"예외가 다시 발생했습니다: {e}")
참고 자료
- Python 공식 문서 – 내장 예외
- Maya Commands Documentation: Autodesk Maya 공식 문서입니다.
- Maya Python API 2.0: Maya Python API 2.0 문서입니다.
이 매뉴얼은 Maya Python에서 RuntimeError의 발생 원인과 처리 방법을 포함한 포괄적인 설명을 제공하며, 다양한 예제와 사용법을 통해 사용자에게 깊이 있는 이해를 제공합니다.