Error Handling in Wizard JScript Files

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at Error Handling in Wizard JScript Files.

When you create a wizard, your project includes the Default.js and Common.js files. Use these files to customize your project. See The JScript File for more information.

Your project should include error handling. The following code provides you with an example of such code.

To handle errors in JScript

  1. To catch errors when the user clicks Finish, enter the following code:

    function OnFinish(selProj, Class)  
    {  
       try  
       {  
          .....  
       }  
       catch(e)  
       {  
          if (e.description.length != 0)  
             SetErrorInfo(e.description, e.number);  
          return e.number  
       }  
    }  
    
  2. Throw e from any helper script functions called in the script:

    function ExtenderFromType(strVariableType)  
    {  
       try  
       {  
          ....  
       }  
       catch(e)  
       {  
          throw e;  
       }  
    }  
    
  3. If the parameter PREPROCESS_FUNCTION is in the .vsz file, the wizard calls CanAddATLClass. Use SetErrorInfo in case of failure and return false:

    function CanAddATLClass(oProj, oObject)  
    {  
       try  
       {  
          if (!IsATLProject(oProj))  
          {  
             if (!IsMFCProject(oProj, true))  
             {     
                var L_CanAddATLClass_Text = "ATL classes can only be added  
     to ATL, MFC EXE and MFC regular DLL projects.";  
                wizard.ReportError(L_CanAddATLClass_Text);  
                return false;  
             }  
             else  
             {  
                .....  
                var bRet = AddATLSupportToProject(oProj);  
                .....  
                return bRet;  
             }  
          }  
          return true;  
       }  
       catch(e)  
       {  
          throw e;  
       }  
    }  
    
  4. If you must go back to the New Project or Add New Item dialog box, return VS_E_WIZBACKBUTTONPRESS:

    function OnFinish(selProj, Class)  
    {  
       ....  
       if (!CheckAddtoProject(selProj))  
       {  
          return VS_E_WIZARDBACKBUTTONPRESS;  
       }  
    }  
    

See Also

Files Created for Your Wizard
Customizing Your Wizard