Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   непонятный try catch (http://www.flasher.ru/forum/showthread.php?t=84565)

offlight 03.09.2006 01:42

непонятный try catch
 
Здрасте! Вопрос такой, следующий код:

Код:

try{
        trace(typeof("shit"));
        throw("shit");
}
catch(e:String){
        trace("Ops. Shit.");
}

в 8 flash выводит
>string
>shit

Это значит он в кэтч не входит, хотя по всем документам должен. Проверил в МХ2004 - там всё логично,
>string
>Ops. Shit.

что за дела?

iNils 03.09.2006 03:43

Код:

try {
        var s:String = new String ("shit");
        throw (s);
} catch (e:String) {
        trace ("Ops. Shit.");
}

Информация к размышлению :)
Код:

var a:String = "123";
trace (a instanceof String) //false
var b:String = new String ("456");
trace (b instanceof String) //true


Скрипун 03.09.2006 17:32

Цитата:

Сообщение от iNils
[code]
Код:

var a:String = "123";
trace (a instanceof String) //false


Че это такое??:wacko:

iNils 03.09.2006 18:13

Цитата:

Сообщение от Скрипун
Че это такое??:wacko:

А вот еще :)
Код:

var a:Number = 123
trace (a instanceof Number) //false
var b:Number = new Number (456);
trace (b instanceof Number) //true

Код:

var a:String = "123";
var b:String = new String ("456");
a["value"] = 1;
b["value"] = 2;
trace ("a = " + a);
trace ("a.value = " + a["value"]);
trace ("b = " + b);
trace ("b.value = " + b["value"]);


Sneg 03.09.2006 18:42

Откуда такие чудеса берутся?

iNils 03.09.2006 18:44

Совсем не чудеса, все предельно ясно.
Код:

var a:String = "123";
var b:String = new String ("456");
trace (typeof a) //string
trace (typeof b) //object


Sneg 03.09.2006 19:03

Ну да точно, я и забыл что класс String от Object наследуется...

Nirth 03.09.2006 20:02

вот эти строчки, с логической стороны полный бред
Код:

try{
        trace(typeof("shit"));
        throw("shit");

throw используется когда мы хотим "выкинуть" ошибку, тоесть ее нужно выкинуть либо в блоке catch либо в finaly, но выкидывать в try бред.

Nirth 03.09.2006 20:15

и вообще
Код:

trace(typeof("shit"));
не является ошибочной, и переход в блок catch не должен состоятся, так что все в восьмерке правильно.

ir73 03.09.2006 21:21

Цитата:

Сообщение от Nirth
throw используется когда мы хотим "выкинуть" ошибку, тоесть ее нужно выкинуть либо в блоке catch либо в finaly, но выкидывать в try бред.

что что?? новые азы программирования?
ошибки кидаются в try, чтобы в catch их можно было перехватить. Если выкинуть в catch,то пардон, где вы собираетесь ее ловить? А в finally ошибку кидать - это конечно верх оптимизма.

Код:

trace(typeof("shit"));
        throw("shit");

это вообще перл. throw это такая новая функция да? вы ее ввели наверное вчера?


Интересно, что еще такая дискуссия длинная пошла.
Всем срочно прочитать
http://livedocs.macromedia.com/flash...=00001889.html


Часовой пояс GMT +4, время: 17:49.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.