Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: Перехват,обработка,пропуск ОШИБКИ
     
    
Добавлено: 27.03.05 12:50
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
     mistershem | Web-сайт: inf.susu.ac.ru/~shem_a
 mistershem | Web-сайт: inf.susu.ac.ru/~shem_a
      
       
  
Всем доброго времени суток !
 
    
Тока не надо критиковать и говорить зачем оно надо. :) В предыдущем посте уже спрашивал об ошибке. Написал, что вродь получилось, но оказывается получилось не совсем то, что хотелось бы :(
Вот пример:
Dim Msg
Private Sub Form_Load()
'Err.Clear
'Err.Raise 6   ' Generate an "Overflow" error.
End Sub
Private Sub Command1_Click()
Err.Clear
Err.Raise 6   ' Generate an "Overflow" error.
End Sub
Private Sub Timer1_Timer()
'Че нуно написать ЗДЕСЬ, чтобы перехватить ошибку.
'Обработать ее, хотя бы вот так:
'MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext
'И пропустить ее, чтобы приложение не вылетело.
End Sub
'Заранее спасибо.
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 9
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа: GSerg
 GSerg


Вопросов: 0
Ответов: 1876 
      
 Профиль |  | #1
       
Добавлено:  27.03.05 14:26
       
    
       
  
Объект Err автоматически сбрасывается при выходе из процедуры.
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа: mistershem
 mistershem


Вопросов: 8
Ответов: 16
      
 Web-сайт:  
 Профиль |  | #2
      
Добавлено:  27.03.05 15:53
       
    
       
  
То есть отследить ошибку можно только в процедуре ? А не из процедуры НЕЛЬЗЯ. Я прально понял ? (На этом примере заморачиваться не надо.)
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа: GSerg
 GSerg


Вопросов: 0
Ответов: 1876 
      
 Профиль |  | #3
       
Добавлено:  27.03.05 16:22
       
    
       
  
Можно по стеку вызовов.
 
    
То есть выловить ошибку можно в процедуре, которая вызывала текущую. Срабатывает первый найденный при обратной раскрутке стека обработчик ошибок. Но зарядить совершенно левую процедуру как обработчик ошибок не получится.
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа: mistershem
 mistershem


Вопросов: 8
Ответов: 16
      
 Web-сайт:  
 Профиль |  | #4
      
Добавлено:  27.03.05 16:32
       
    
       
  
GSerg,спасибо за ответы. Все понятно. Буду реализовывать свою задачу по-другому.
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 5 
      
Автор ответа: Barsik
 Barsik







Разработчик Offline Client
ICQ: 343368641 
Вопросов: 17
Ответов: 686
      
 Web-сайт:  
 Профиль |  | #5
      
Добавлено:  27.03.05 23:19
       
    
       
  
 
    
1
MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext 
вроде так
		
	  
			 
	
		 
    
       
    
Номер ответа: 6 
      
Автор ответа: LamerOnLine
 LamerOnLine



ICQ: 334781088 
Вопросов: 108
Ответов: 2822
      
 Профиль |  | #6
       
Добавлено:  28.03.05 09:53
       
    
       
  
 
    
Dim Msg as String
Private Sub Form_Load()
On Error Resume Next 
'Err.Raise 6 ' Generate an "Overflow" error.
Msg=Err.Description
End Sub 
Private Sub Command1_Click()
On Error Resume Next  
Err.Raise 6 ' Generate an "Overflow" error.
Msg=Err.Description
End Sub
Хотя зачем такой изврат - непонятно...
		
	  
			 
	
		 
    
       
    
Номер ответа: 7 
      
Автор ответа: GSerg
 GSerg


Вопросов: 0
Ответов: 1876 
      
 Профиль |  | #7
       
Добавлено:  28.03.05 10:22
       
    
       
  
Видимо, человек хочет централизованную обработку ошибок учинить...
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 8 
      
Автор ответа: Barsik
 Barsik







Разработчик Offline Client
ICQ: 343368641 
Вопросов: 17
Ответов: 686
      
 Web-сайт:  
 Профиль |  | #8
      
Добавлено:  28.03.05 10:51
       
    
       
  
 
    
только зачем, непонятно  
		
	  
			 
	
		 
    
       
    
Номер ответа: 9 
      
Автор ответа: sne
 sne





Разработчик Offline Client
ICQ: 233286456 
Вопросов: 34
Ответов: 5445
      
 Web-сайт:  
 Профиль |  | #9
      
Добавлено:  28.03.05 12:06
       
    
       
  
 
    
On Error это не способ обработки ошибок  ) Программер уже при написании кода должен знать где возможна ошибка, и ставить условие с вызовом обработчика на это место
) Программер уже при написании кода должен знать где возможна ошибка, и ставить условие с вызовом обработчика на это место  И только в тех случаях когда оное невозможно, пользовать SEH. имхо
 И только в тех случаях когда оное невозможно, пользовать SEH. имхо