Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.236.147.122] |
|
Сообщ.
#1
,
|
|
|
Перед вызовом процедуры Public Proc1 объект err заполнен некими значениями. В самой Proc1 стоит On Error Resume Next, после выхода из Proc1 имеем чистый err или с данными ошибки от Proc1. Как сохранить данные err, которые было до вызова Proc1?
|
Сообщ.
#2
,
|
|
|
Нафига?
|
Сообщ.
#3
,
|
|
|
Чтобы в конце основной процы Proc0 обработать ошибку! Просто интересно, как сохранить объект целиком, а не 2 свойства.
|
Сообщ.
#4
,
|
|
|
Сохрани все свойства - чего там их у Err-то... ну или попробуй выпендриться типа
Dim arrerr() As Err |
Сообщ.
#5
,
|
|
|
Цитата BlackSun @ Как сохранить данные err, которые было до вызова Proc1? ... Чтобы в конце основной процы Proc0 обработать ошибку! Какой-то странный подход. Ошибку нужно обрабатывать сразу при ее возникновении, а не откладывать на потом. А если в рез-те этой ошибки и Proc1 отработает неправильно?! |
Сообщ.
#6
,
|
|
|
BlackSun
На, развлекайся... Type ErrorObject Description As String HelpContext As Long HelpFile As String LastDllError As Long Number As Long Source As String End Type Sub testErrorObject() Dim store(1 To 2) As ErrorObject Dim i As Integer On Error GoTo ErrorHandler Debug.Print 1 / 0 Debug.Print 1024 * 1024 Stop Exit Sub ErrorHandler: i = i + 1 store(i).Description = Err.Description store(i).HelpContext = Err.HelpContext store(i).HelpFile = Err.HelpFile store(i).LastDllError = Err.LastDllError store(i).Number = Err.Number store(i).Source = Err.Source Resume Next End Sub |
Сообщ.
#7
,
|
|
|
Akina,ты в блокноте код писал?
|
Сообщ.
#8
,
|
|
|
MIF
Не, в чём-то... кажется, в экселе, но уже не помню... и даже запустил и по Stop посмотрел Locals. |
Сообщ.
#9
,
|
|
|
т.е. сохранить сам объект никак? а то я пробовал сделать:
Dim tmpErr As ErrObject Set tmpErr = err |
Сообщ.
#10
,
|
|
|
Сохранить - никак. Ибо похоже, что Err - не объект, а интерфейс некоего объекта...
|
Сообщ.
#11
,
|
|
|
Цитата Akina @ Ибо похоже, что Err - не объект, а интерфейс некоего объекта... Интересно, а при передаче по ByVal, как оно себя должно в VB повести? |
Сообщ.
#12
,
|
|
|
VisualProg
Так попробуй, зачем спрашивать-то? Хотя вполне можно предсказать, что получится - то же, что и в сообщении #9. Да и в случае ByRef получится то же самое... |
Сообщ.
#13
,
|
|
|
Цитата Akina @ Так попробуй, зачем спрашивать-то? Кончился у меня басик, дома поднимать времени нету, а на работе только VBA в каком нибудь офисе остался. Так что я с VB совсем завязал, только относительно недавно начал понимать - что же на самом деле у меня было, и какой же я дурак, раз это всё не использовал и не знал |