ActiveX 스크립트 호스트가 있는 런타임 오류를 catch 방법

기술 자료 번역 기술 자료 번역
기술 자료: 232394 - 이 문서가 적용되는 제품 보기.
이 문서가 보관되었습니다. "그대로" 제공되었으며, 업데이트가 되지 않을 것입니다.
참고 Visual C++ 2005, Microsoft Visual C++ .NET 2003, Microsoft Visual C++ .NET 2002 Microsoft .NET Framework에서 제공하는 관리되는 코드 모델과 관리되지 않는 네이티브 Microsoft Windows 코드 모델을 모두 지원합니다. 이 문서에 나와 있는 정보는 관리되지 않는 Visual C++ 코드에만 적용됩니다.
모두 확대 | 모두 축소

요약

ActiveX 스크립트에서 실행되는 모든 프로그램과 같이 스크립트 호스트 두 종류의 오류, 컴파일 타임 및 런타임 throw 할 수 있습니다. 이전 구현에서 ActiveX 스크립팅 엔진 오류는 두 형식 간의 구분이 Microsoft (VBScript 및 JScript)를 제공하는. 모두 IActiveScriptSite::OnScriptError() 있는 처리되었습니다. 최신 버전의 스크립트 엔진 간의 런타임 및 컴파일 타임 오류는 구분이 없습니다. 구문 오류와 같은 컴파일 타임 오류가 여전히 IActiveScriptSite::OnScriptError() 메서드를 사용하여 ActiveX 스크립트 호스트가 보고됩니다. 그러나 잘못된 인수를 전달하는 것과 같은 런타임 오류는 직접 OnScriptError() 수 보고되지 않으며. 대신, 다른 방법으로, IActiveScriptSiteDebug::OnScriptErrorDebug()가 보고됩니다.

이 문서에 있는 기존 ActiveX 스크립트 스크립트에서 예외가 throw 런타임 오류를 catch하도록 호스트 수정하는 방법을 설명합니다.

추가 정보

이 문서에서는 ActiveX 스크립트 호스트가 이미 작성한 가정합니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 이 문서의 "참조" 절을 기록한 문서를 참조하십시오.

런타임 오류가 발생하면 스크립트 엔진 최신 릴리스는 IActiveScriptSiteDebug::OnScriptErrorDebug이 호출됩니다. IActiveScriptSiteDebug 인터페이스 전에 디버거에서 디버깅 참여할 수 있는 기회가 관련된 스크립트 호스트를 제공합니다. 런타임 오류 때 알리도록 스크립트 호스트 순서로, 최소한의 구현은 IActiveScriptSiteDebug 필요합니다 발생합니다.

스크립트 엔진이 QueryInterface IActiveScript::SetScriptSite 메서드를 호출할 때 IActiveScriptSiteDebug 인터페이스에 대한 해당 호스트 IActiveScriptSite 포인터가 됩니다. 이 오류가 발생하면 스크립트 엔진이 자체적으로 스크립트 디버거를 시도합니다. 그러나 해당 QueryInterface 성공하면 스크립트 엔진이 스크립트 세션에 대해 디버깅 기능을 설정하려면 IActiveScriptSiteDebug::GetApplication() 다음 호출합니다. IActiveScriptSiteDebug::GetApplication() 오류가 발생하면 스크립트 엔진이 디버깅, 시스템에서 사용할 수 없는 및 모든 오류 처리를 위해 IActiveScriptSite::OnScriptError() 되돌리기 결론을 내릴 것입니다.

IActiveScriptSiteDebug 인터페이스 최소한의 구현이 있습니다:
   STDMETHOD(GetDocumentContextFromPosition)(
      DWORD dwSourceContext, 
      ULONG uCharacterOffset, 
      ULONG uNumChars, 
      IDebugDocumentContext **ppsc) {return E_NOTIMPL;}

   STDMETHOD GetApplication( IDebugApplication **ppda ) {return E_NOTIMPL;}

   STDMETHOD(GetRootApplicationNode)( IDebugApplicationNode **ppdanRoot) {return E_NOTIMPL;}
   
   STDMETHOD(OnScriptErrorDebug)( 
      IActiveScriptErrorDebug *pErrorDebug, 
      BOOL *pfEnterDebugger,
      BOOL *pfCallOnScriptErrorWhenContinuing) {return E_NOTIMPL;}
				
노트 Visual C++ 2005 인 공용 언어 런타임 지원 컴파일러 옵션을 추가해야 합니다 (/clr:oldSyntax) 성공적으로 이전 코드 샘플을 컴파일하려면. 공용 언어 런타임 지원 컴파일러 옵션을 추가하려면 다음과 같이 하십시오.
  1. 프로젝트 를 클릭한 다음 ProjectName 속성 을 클릭하십시오.

    참고ProjectName 프로젝트의 이름 자리 표시자입니다.
  2. 구성 속성 을 확장한 다음 일반 을 클릭하십시오.
  3. 오른쪽 창에서 선택한 공용 언어 런타임 지원, 이전 구문 (/clr:oldSyntax) 에서 공용 언어 런타임 지원 프로젝트 설정.
  4. 적용 을 누른 다음 확인 을 누릅니다.
공용 언어 런타임 지원 컴파일러 옵션에 대한 자세한 내용은 다음 MSDN) Microsoft 개발자 네트워크 (웹 사이트를 방문하십시오.
http://msdn2.microsoft.com/en-us/library/k8d11d4s.aspx
또는 스크립트 호스트 IActiveScriptSiteDebug 인터페이스의 전체 구현을 선택할 수 있습니다. 다음 MSDN IActiveScriptSiteDebug 인터페이스에 대한 설명서를 방문한 웹 사이트:
http://msdn.microsoft.com/en-us/library/6c5sfkte(VS.85).aspx

참조

ActiveX 스크립트 작성 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
223139VBScript ATL 응용 프로그램을 호스팅하기 위한 지원을 추가하는 방법
183698Axsh.exe 현재 스크립팅 호스트를 구현하는 방법을 보여 줍니다.
168214MFC를 사용하여 액티브 스크립트 호스트를 MFCAxs.exe가 구현합니다.
223389머리글 및 ActiveX 스크립트 호스트 및 엔진을 만드는 데 필요한 라이브러리 Scripting.exe 파일에는

속성

기술 자료: 232394 - 마지막 검토: 2014년 2월 23일 일요일 - 수정: 5.3
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Visual Basic, Scripting Edition 5.0
  • Visual Basic, Scripting Edition 4.0
  • Visual Basic, Scripting Edition 3.0
키워드:?
kbnosurvey kbarchive kbmt kbactivexscript kbhowto KB232394 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com