response.redirect ???

3 отговора 159 прегледа
#1

response.redirect ???

Imam problem s response.redirect. Tova mi e koda

Try
...
Response.Redirect("Page1.aspx")
Catch ex As Exception
Response.Redirect("Error.aspx?Err=" & ex.Message)
EndTry

Znachi koda minava prez parvia response.redirect, posle zaspiva za moment, i sled tova vliza v catch blocka i generira greshka - Thread was aborted. Obache kato mahna response.redirect-a v catch-a i vsichko si minava extra i niama greshka.

Zashto stava taka? Nishto ne razbiram!!!

Отговор
в отговор на aspfreak #2

Re: response.redirect ???

Redirect не хвърля ли изключение?

Недей си хваща грешките по тоя начин, ами си напиши типовете изключения, които знаеш как да обработиш точно на това място в кода. Останалите пусни да изплуват нагоре.

--
Екстремно програмиране на български.
[линк]
Отговор
в отговор на aspfreak #3

Re: response.redirect ???

не е нужно чак толкова да го разбираш ... просто трябва да знаеш как работи цялата работа ... аз затова съм доста скептичен към секви vb/asp "програмисти" защото те научават 5-те обекта в asp за 2 дена и решават че вече знаят всичко ... обаче едно е да знаеш как да викаш 10 метода на кръст, а съвсем друго е да знаеш как работят тези методи и какво точно става under the hood

аре стия с конското .. ама си трия повече четене ... нали знаеш 1 час четене спестява 1 ден писане на код

Та, на въпроса, Response.Redirect по имплементация хвърля ThreadAbortException ако твоя Redirect НЕ Е накрая на изпълнимия код ( тоест има още код за изпълняване след него ). Винаги след Response.Redirect трябва да излезеш веднага с return .

Примерно нещо такова:

Try
. . . url = "Page1.aspx"
. . . ...
Catch ex As Exception
. . . Session("err") = ex.Message
. . . url = "Error.aspx"
Finally
. . . \\ clean up
End Try

Response.Redirect(url)


Това бих направил аз примерно. Ако не искаш така, просто слагай по един return след Redirect. Освен това Response.Redirect приема и втори параметър който като го сложиш на False забранява на Response.Redirect да извиква Response.End и да хвърля exception ...




XM TurboCT .. where comfort meets power
Отговор
в отговор на шeф нa Coди Дeвня #4

Re: response.redirect ???

Tuka si prav. Ama az sam na obratnia princip: 2-3 dena glavobluskane spestiava 1 den chetene. S return stana. Mersi mnogo. Az pisha postove samo po chujdi forumi shtoto tuka v dir-a vsichki samo izbivat komplexi i se obijdat, ama iavno ima i svesni.

Отговор