SASGIS - SAS.Планета
View Issue Details
0001190SAS.Планета[All Projects] Багpublic27-02-2012 04:4310-10-2012 11:41
Tolik 
vdemidov 
normalmajoralways
closedfixed 
.Nightly 
120808120808 
0001190: Неправильно отрабатываются run time errors в паскальскрипте
Если во время работы происходит ошибка в паскальскрипте (такая как TypeMismatch), то
1. Никакого сообщения об ошибке не выводится
2. Выводятся ошибки 400 (если, конечно, сервер их отдаёт по ошибочному URL). То есть несмотря на TypeMismatch, паскальскрипт отрабатывает (ровно 1 раз)
3. После одной такой ошибки каждый тред качалки зависает, после этого никакие карты не скачиваются ни для просмотра, ни в кэш. Требуется перезапуск программы
4. Хотя качалка уже умерла, в параметрах карты показывает download state=yes
Например, недоделанный maps.by.zmp http://sasgis.org/forum/viewtopic.php?p=25943#p25943
В нём используется массив K:array[10..20] of longint; и K[GetZ].
Если перейти на зум < 10, вылезает этот баг.

паскальскрипт
related to 0001103closed vdemidov Останавливается скачивание тайлов для вывода на экран 
Issue History
27-02-2012 04:43TolikNew Issue
27-02-2012 04:44TolikNote Added: 0005673
27-02-2012 04:44TolikRelationship addedrelated to 0001103
27-02-2012 04:44TolikStatusnew => acknowledged
27-02-2012 04:52TolikDescription Updatedbug_revision_view_page.php?rev_id=2860#r2860
27-02-2012 14:23vdemidovNote Added: 0005680
27-02-2012 14:23vdemidovStatusacknowledged => resolved
27-02-2012 14:23vdemidovFixed in Version => 120808
27-02-2012 14:23vdemidovResolutionopen => fixed
27-02-2012 14:23vdemidovAssigned To => vdemidov
27-02-2012 14:23vdemidovTarget Version => 120808
27-02-2012 14:23vdemidovTarget Version120808 => 110418
28-02-2012 06:33TolikNote Added: 0005693
28-02-2012 06:37TolikNote Edited: 0005693bug_revision_view_page.php?bugnote_id=5693#r2871
29-02-2012 11:49gpsMaxTag Attached: паскальскрипт
29-02-2012 12:04vdemidovNote Added: 0005743
29-02-2012 12:50vasketsovNote Added: 0005751
29-02-2012 12:58TolikNote Added: 0005753
29-02-2012 13:08vasketsovNote Added: 0005755
29-02-2012 13:18TolikNote Added: 0005756
29-02-2012 13:21vasketsovNote Added: 0005759
07-08-2012 06:53vdemidovTarget Version110418 => 120808
10-10-2012 11:41TolikStatusresolved => closed

Notes
(0005673)
Tolik   
27-02-2012 04:44   
Добавил перед ResultURL
if ((GetZ >= 10) and (GetZ <= 20)) then
Теперь так сразу не вылетает.
Но я хочу, чтобы такая ошибка скрипта тоже отрабатывалась адекватно: чтобы выходило сообщение об ошибке, а качалка не падала.
(0005680)
vdemidov   
27-02-2012 14:23   
Вроде бы поправил обработку ошибок. Раньше оно затыкалось на одной ошибке и больше никаких урлов не генерировало.
(0005693)
Tolik   
28-02-2012 06:33   
(edited on: 28-02-2012 06:37)
Исправлено в 120228.5112.
Выводится Error: Out Of Range, качалка не слетает.

Конечно, более информативный текст не помешал бы. Непонятно, что out of range.

(0005743)
vdemidov   
29-02-2012 12:04   
Увы. Чего вернул паскаль скрипт, то я и вывожу.
(0005751)
vasketsov   
29-02-2012 12:50   
>Непонятно, что out of range
Имеется в виду, что неочевиден тот факт, что ошибка из паскальскрипта пришла?
(0005753)
Tolik   
29-02-2012 12:58   
Ну если в теме, то понятно. А если 1-й раз увидел такую ошибку, не поймёшь, о чём речь.
Можно же написать: "Pascalscript runtime error: out of range"?
(0005755)
vasketsov   
29-02-2012 13:08   
>Можно же написать
Ну не скажу за такую формулировку, а в принципе конечно _класс_ исключения можно написать. Но только это не панацея.
(0005756)
Tolik   
29-02-2012 13:18   
> _класс_ исключения можно написать
Как это будет выглядеть?

Кстати, не пора ли переписать все ошибки на английский? Это, кажется, единственное, что осталось на русском.
(0005759)
vasketsov   
29-02-2012 13:21   
>Как это будет выглядеть?
Ну типа
Classname = 'EAccessViolation'
Message = 'Access Violation ...'
И фиг поймёшь, что исключение из паскальскрипта.
Хотя я обычно у себя в проектах в логи пишу 'класс: сообщение'.