Unity3D未处理异常未记录

时间:2015-10-12 13:45:48

标签: c# exception unity3d

我使用以下Loom脚本在Unity3D中执行某些客户端/服务器通信。我的问题是我在服务器上发生错误时使用异常通知客户端,如果通过Loom脚本未处理,这些异常目前只是退出线程。如果未处理异常,我可以对Debug.Log()做什么来通知开发人员?

织机脚本:

%macro ReadDsFromFile(filename_to_process, indata_header_file, out_dsname);

%local filename_to_process indata_header_file out_dsname;

/* This macro var contain code to read data file*/
%local read_code input_in_line; 
%put *** Processing file: &filename_to_process ...;

/* Read in the header file */
proc import OUT     = ds_header
        DATAFILE    = &indata_header_file.
        DBMS        = EXCEL REPLACE;        /* REPLACE flag */
        SHEET       = "Names";
        GETNAMES    = YES;
        MIXED       = NO;
        SCANTEXT    = YES; 
run;

%let id     = %sysfunc(open(ds_header));
%let NOBS   = %sysfunc(attrn(&id.,NOBS)); 
%syscall set(id); 

/* 
    Generates:
    data &out_dsname.;
    infile "&filename_to_process."
        DSD delimiter="|" lrecl=32767 STOPOVER FIRSTOBS=3;  
        input   
        '7C'x
*/

%let read_code = data &out_dsname. %str(;)
                        infile &filename_to_process.
                        DSD delimiter=%str("|") lrecl=32767 STOPOVER %str(;)
                        input ;

/*
    Generates:
    <field_name> : $<field_length>;
*/
%do i = 1 %to &NObs;
    %let rc             = %sysfunc(fetchobs(&id., &i));
    %let VAR_NAME       = %sysfunc(getvarc(&id., %sysfunc(varnum(&id., Variable_Name)) ));  
    %let VAR_LENGTH     = %sysfunc(getvarn(&id., %sysfunc(varnum(&id., Variable_Length)) ));    
    %let VAR_TYPE       = %sysfunc(getvarc(&id., %sysfunc(varnum(&id., Variable_Type)) ));  
    %let VAR_LABEL      = %sysfunc(getvarc(&id., %sysfunc(varnum(&id., Variable_Label)) ));
    %let VAR_NOTES      = %sysfunc(getvarc(&id., %sysfunc(varnum(&id., Notes)) ));      

    %if %upcase(%trim(&VAR_TYPE.)) eq CHAR %then 
        %let input_in_line = &VAR_NAME :$&VAR_LENGTH..;
    %else
        %let input_in_line = &VAR_NAME :&VAR_LENGTH.;

    /* append in_line statment to main macro var*/
    %let read_code = &read_code. &input_in_line. ;
%end; 

/* Close the fid */
%let rc = %sysfunc(close(&id));

%let read_code = &read_code. %str(;) run %str(;) ;

/* Run the generated code*/
&read_code.

%mend ReadDsFromFile;

1 个答案:

答案 0 :(得分:0)

您可以使用Reporter。通常它会捕获未处理的错误,并将堆栈跟踪,屏幕截图和日志作为电子邮件发送给开发人员。但是,您也可以在服务器错误时触发手动发送电子邮件。