Exceptions против Error checking

15 отговора 700 прегледа
#1

Exceptions против Error checking

Joel пак подпали чергата
[линк]

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

Iako!!! :))

In general, I have to admit that I’m a little bit scared of language features that hide things. When you see the code

i = j * 5;

… in C you know, at least, that j is being multiplied by five and the results stored in i.

But if you see that same snippet of code in C++, you don’t know anything. Nothing. The only way to know what’s really happening in C++ is to find out what types i and j are, something which might be declared somewhere altogether else. That’s because j might be of a type that has operator* overloaded and it does something terribly witty when you try to multiply it. And i might be of a type that has operator= overloaded, and the types might not be compatible so an automatic type coercion function might end up being called. And the only way to find out is not only to check the type of the variables, but to find the code that implements that type, and God help you if there’s inheritance somewhere, because now you have to traipse all the way up the class hierarchy all by yourself trying to find where that code really is, and if there’s polymorphism somewhere, you’re really in trouble because it’s not enough to know what type i and j are declared, you have to know what type they are right now, which might involve inspecting an arbitrary amount of code and you can never really be sure if you’ve looked everywhere thanks to the halting problem (phew!).

Мечтата е мисъл, мисълта е идея, всяка идея се реализира. Аз не мечтая, а реализирам идеите си.
Отговор
в отговор на focusnik #3

Re: Exceptions против Error checking

шибан чифут



Отговор
в отговор на Pekoнcтpykтop #4

Re: Exceptions против Error checking

шибат го и е чифут, но статията не е лоша. в тоя пост става въпрос за статията ако не си забелязал...

Отговор
в отговор на Duncan Griffin #5

Re: Iako!!! :))

Аз не виждам какъв е големия проблем да overload-ваш operator*. Кво - ако си написал клас за матрици или вектори, не е ли тъпо да не го направиш? Сигурно има капани, но определено е естествено.

Отговор
в отговор на Duncan Griffin #6

Re: Iako!!! :))

Ае то по тая логика и функция като викнеш, скрива неща.

Лека нощ
Отговор
в отговор на z-order #7

Re: Iako!!! :))

Вярно е. Но познавам хора, които като нищо биха направили overload на оператор-* за стринг, които например да прави ривърс.

Мечтата е мисъл, мисълта е идея, всяка идея се реализира. Аз не мечтая, а реализирам идеите си.
Отговор
в отговор на Maтa Kocмaтa #8

Re: Iako!!! :))

Еее, айде викането на функция да е явно.

Мечтата е мисъл, мисълта е идея, всяка идея се реализира. Аз не мечтая, а реализирам идеите си.
Отговор
в отговор на Duncan Griffin #9

Re: Iako!!! :))

Да го оставят 1 ден да пише вместо Str3= Str1 & " kosam " & Str2

Str3 = Append(Str1, "kosam")
Str3 = Append(Str3, Str2)

да го видим на другата сутрин кви ша ги наизпише

Лека нощ
Отговор
в отговор на focusnik #10

Re: Exceptions против Error checking

Чак сега я дочетох статията - Дж тоя път май освен да преразкаже няколко блога нищо не е написал... що ли му става навик.

И както винаги скромен:

Of course millions of people jumped down my throat. The only person in the world who leapt to my defense was, of course, Raymond Chen, who is, by the way, the best programmer in the world, so that has to say something, right?

Лека нощ
Отговор
в отговор на avraam #11

Мда, статията показва,....

...че красноречието е също толкова важно, колкото и конкретните знания.
Представи си че си ентусиазиран новак, решил да посвети живота си на програмирането и прочете статия от тоя тип, написана по убедителен начин и т.н. При липса на опит, знания и точка за сравнение - ставаш върл противник на изключенията и привърженик за унгарската нотация. Без да се замисляш.

Отговор
в отговор на avraam #12

Re: Exceptions против Error checking

Ти виждал ли си чифут да не лъже?
Каквото и да използваш, и както и на каквото да пишеш, можеш или да осереш всичко, или да го напишеш чисто, разбрано и на всичкото отгоре и да работи. Мразя дървени философи, които от няма кво да правят почват да измислят безполезни глупави теории.



Отговор
в отговор на z-order #14

Re: Exceptions против Error checking

[линк], 'I'm feeling lucky'

Лека нощ
Отговор
в отговор на focusnik #15

Re: Мда, статията показва,....

Оставям изключенията на страна, но ти прочете ли статията внимателно?
Пробва ли се да му разбереш тезата за Унгарската нотация?

Отговор
в отговор на aдcф #16

Re: Мда, статията показва,....

"Оставям изключенията на страна, но ти прочете ли статията внимателно?
Пробва ли се да му разбереш тезата за Унгарската нотация?
"
E?

Отговор