  | 
				VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.   
				 | 
			 
		 
		 
	
		| 上一篇主題 :: 下一篇主題   | 
	 
	
	
		| 發表人 | 
		內容 | 
	 
	
		LBANDLSQISME
 
 
  註冊時間: 2006-07-26 文章: 54
 
  第 1 樓
  | 
		
			
				 發表於: 星期一 四月 23, 2007 7:04 pm    文章主題: 如何确定错误信息显示屏幕 | 
				     | 
			 
			
				
  | 
			 
			
				我的错误处理过程,它可以显示错误相关内容,但是它会显示在正在执行的表单中,很多时候我都无法看到完整的出错信息。
 
    我的问题是:如何才能将所有错误处理过程输出的出错信息统一显示在主屏幕上面。
 
    向各位请教!
 
    真诚谢谢您的指导。 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		LBANDLSQISME
 
 
  註冊時間: 2006-07-26 文章: 54
 
  第 2 樓
  | 
		
			
				 發表於: 星期六 四月 28, 2007 2:37 pm    文章主題: 我的办法,请指教。 | 
				     | 
			 
			
				
  | 
			 
			
				我原本的想法是,因我不太会用调试工具,所以我想方便地找到程序错误的地方。我现在的办法是,在错误处理过程中
 
 
........
 
_SCREEN.SHOW       && 主屏幕显示
 
CLEA                       && 清除原有显示
 
&& 以下显示各种错误信息
 
@ 1,1 SAY message
 
@ 2,1 SAY MESSAGE()
 
@ 3,1 SAY MESSAGE(1)
 
@ 4,1 SAY 'error number: '+ alltrim(str(errnum))
 
@ 5,1 SAY "当前程序或过程"
 
@ 6,1 SAY program( )
 
@ 7,1 SAY "程序行数"
 
@ 8,1 SAY LINENO()
 
@ 9,1 SAY "当前程序行:"
 
@ 10,1 SAY LINENO(1)
 
@ 11,1 SAY "正在执行的程序"+SYS(16,3)
 
@ 12,1 SAY "错误信息参数:"+ SYS(2018)
 
........
 
 
请指教。 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		garfield Site Admin
  
  註冊時間: 2003-01-30 文章: 2160
 
  第 3 樓
  | 
		 | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		yang1032
 
 
  註冊時間: 2004-06-19 文章: 58
 
  第 4 樓
  | 
		
			
				 發表於: 星期五 五月 16, 2008 6:17 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				1.ON ERROR DO errhandle WITH Program(),Error(),Message(),Message(1),Lineno()
 
2.
 
procedure errhandle
 
parameters mProgram,mError,mMessage,mMessage1,mLineno
 
*******************************
 
private st1,old_select
 
old_select=select()
 
 
do case 
 
	case  merror=202 .and. s_begin  &&預設磁碟機目錄錯誤
 
		s_dir ="c:\"+s_dir_1
 
		set defa to &s_dir
 
		set path to &s_dir
 
		s_net="N"
 
		s_begin=.f.
 
	case  merror=1943 &&  成員物件無法=某值
 
	case merror=1707  .and. s_begin  && 找不到覆合式索引檔
 
	case merror=52  .and. s_begin  && 找不到覆合式索引檔
 
	case merror=1961 .and. s_begin &&目錄或檔案已建立
 
	case merror=1705   &&
 
		messagebox("其他使用者正在使用中,無法操作!!")
 
		s_error =merror
 
	other
 
		st1=""
 
		st1= 	      '錯誤程式名稱: ' + mprogram+chr(13)
 
		st1=st1+ '錯誤        代碼: ' +  LTRIM(STR(mError))+chr(13)
 
		st1=st1+ '錯誤        訊息: ' + mMessage+chr(13)
 
		st1=st1+ '錯誤    程式列: ' + mMessage1+chr(13)
 
		st1=st1+ '錯誤        列號: ' + LTRIM(STR(mLineno))+chr(13)
 
		*st1=st1+ msys16 +chr(13)
 
		sele 0
 
		use zuv_err  &&存入檔案以備查詢
 
		appe blank
 
		repl 	程式名稱 with substr(alltrim(s_head2),10)+" "+ mprogram
 
		repl  代碼		with STR(mError, 
 
		repl  訊息		with  mMessage
 
		repl 	程式列		with  mMessage1
 
		repl  列號		with str(mLineno, 
 
		repl 時間			with dtoc(date())+"  "+time()
 
		use
 
		=messagebox(st1,48,"error information")
 
		s_error =merror
 
 
endcase 
 
select (old_select)
 
RETURN | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
  	 
	    
  	   | 
 	
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
  | 
   
  
		 |