BG Development


Страници: (8) « първа ... 3 4 [5] 6 7 ... последна »  ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Къде е Ръждата?!
Дон Реба
Публикувано на: 27-04-2025, 09:13
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 10488
Регистриран на: 11.11.06



QUOTE (dvader @ 27-04-2025, 08:15)
QUOTE (thrawn @ 26-04-2025, 19:00)
Не казвам да пишеш на всяко ниво try/catch а там където има смисъл да го обработиш.
Така де... На мен тезата ми е, че има смисъл да се обработва най-горе по веригата, колкото се може по-близко до main loop.

със това дори частично ще се съглася, но само ниво да се спасиш от краш и загуба на данни. но хората които ползват изключения не го правят за това, а примерно за да могат да направят аналог на int i=atoi(str); който "съобщава" че стринга не е число хвърляйки изключение. практика която звучи много примамливо, но е път към ада
PM
Top
DarkOne
Публикувано на: 27-04-2025, 11:17
Quote Post


Group Icon
Име: Александър Петков
Група: Администратор
Ранг: Почетен член

Мнения: 3731
Регистриран на: 30.01.04



QUOTE (dvader @ 25-04-2025, 13:15)
QUOTE (DarkOne @ 25-04-2025, 13:09)
Концептуалният въпрос е трябва ли всички грешки да се обработват. Твоят отговор е "не" и затова не проверяваш за грешки и не ползваш изключения.

Нещо бъркаш.
Моят отговор е "не" и *ползвам* изключения, щото те ме връщат нейде в началото в някакво стабилно състояние без да се налага сам да чистя нещата по целият кол-стек.

Ако функцията НЕ МОЖЕ да ми върне валидни данни, това е изключение.
"Валидни данни" са такива, с които мога а продължа да работя без за изпадна в seg fault или да генерирам corrupted дата.

И ако чак толкова не искаме да ползваме изключения си имаме errno - можем да си го проверим като се върнем най-горе по веригата icon_smile.gif

Да хванеш изключение = да обработиш грешката. Няма значение че е нагоре по веригата. Аз говоря за подхода на Реба, който пуска операциите и продължава изпълнението на операцията дори когато е възникнала грешка.


--------------------
The man who learns only what others know
is as ignorant as if he learns nothing.
The treasures of knowledge are the most rare,
and guarded most harshly.
-- Chronicle of the First Age
PMICQ
Top
dvader
Публикувано на: 27-04-2025, 11:26
Quote Post


Group Icon
Име: Валерий Тодоров
Група: VIP
Ранг: Почетен член

Мнения: 5407
Регистриран на: 12.07.05



QUOTE (DarkOne @ 27-04-2025, 11:17)
Да хванеш изключение = да обработиш грешката.

Дискусията е не КОИ грешки да хващаме а КАК да ги хващаме.
А темата беше, че в Ръст са премахнали едната опция ИЗЦЯЛО.

Това мнение е било редактирано от dvader на 27-04-2025, 11:27


--------------------
I find your lack of faith disturbing
PM
Top
dvader
Публикувано на: 27-04-2025, 11:30
Quote Post


Group Icon
Име: Валерий Тодоров
Група: VIP
Ранг: Почетен член

Мнения: 5407
Регистриран на: 12.07.05



QUOTE (Дон Реба @ 27-04-2025, 09:13)
направят аналог на int i=atoi(str); който "съобщава" че стринга не е число хвърляйки изключение. практика която звучи много примамливо, но е път към ада

Аха... а ако го проверяваш с error code и да връщаш error code - това не е ли път към същият ад?
Или имаше в предвид "път към Ада" icon_smile.gif

Според мен е едно и също, просто е повече писане.


--------------------
I find your lack of faith disturbing
PM
Top
Дон Реба
Публикувано на: 27-04-2025, 11:44
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 10488
Регистриран на: 11.11.06



QUOTE (dvader @ 27-04-2025, 11:30)

Аха... а ако го проверяваш с error code и да връщаш error code - това не е ли път към същият ад?

ами не е, пробвал съм. ако има как предпочитам със забранена стойност (и най-често има как), но ако всички стойности са допустими тогава няма как - функцията връща валидност, а резултата в аргумент. не е красиво, не можеш да вкараш функцията в израз, но е по-добре от изцепшън. изцепшъните като много други красиви неща са отрова.
PM
Top
SuN
Публикувано на: 27-04-2025, 11:47
Quote Post


Group Icon
Име:
Група: Администратор
Ранг: Почетен член

Мнения: 13431
Регистриран на: 27.01.05



QUOTE (dvader @ 27-04-2025, 11:26)
QUOTE (DarkOne @ 27-04-2025, 11:17)
Да хванеш изключение = да обработиш грешката.

Дискусията е не КОИ грешки да хващаме а КАК да ги хващаме.
А темата беше, че в Ръст са премахнали едната опция ИЗЦЯЛО.

Лъжат те!

QUOTE
It is not recommended to use this function for a general try/catch mechanism.

"https://doc.rust-lang.org/std/panic/fn.catch_unwind.html"

Не е препоръчително, но може да прихващаш паникьосвания според документацията.

Това мнение е било редактирано от SuN на 27-04-2025, 11:49


--------------------
Само аз не троля.
Всички коментари са плод на художествена измислица и нямат общо с действителни и недействителни лица, събития и факти.
PMEmail Poster
Top
Дон Реба
Публикувано на: 27-04-2025, 11:49
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 10488
Регистриран на: 11.11.06



между другото, въпроса "какво правим при грешка" е много по-дълбок и това дали изцепшъни или ерор кодове е само маловажен технически въпрос. моето наблюдение е че много програмисти ако няма меринджей да им шока репата правят тотално неизползваем софтуер защото и при най-малката грешка - край, света спира да се върти. дъглас адамс впрочем много добре ги усеща тия неща и ако беше написал книга за продуктов мениджмънд щеше да допринесе много. той впрочем е, но трябва да четеш разни странични истории за говорещи мишки, докато стигнеш до същината
PM
Top
ici
Публикувано на: 27-04-2025, 12:26
Quote Post


Group Icon
Име: Ивайло Илчев
Група: VIP
Ранг: Почетен член

Мнения: 19057
Регистриран на: 06.06.04



QUOTE (dvader @ 27-04-2025, 12:30)
QUOTE (Дон Реба @ 27-04-2025, 09:13)
направят аналог на int i=atoi(str); който "съобщава" че стринга не е число хвърляйки изключение. практика която звучи много примамливо, но е път към ада

Аха... а ако го проверяваш с error code и да връщаш error code - това не е ли път към същият ад?
Или имаше в предвид "път към Ада" icon_smile.gif

Според мен е едно и също, просто е повече писане.

Има много неща в C които не трябва да се използват. Това е atoi, глобално errno (без reentracy) и много други.

Прикачена картинка (Кликнете на картинката, за да я увеличите!)
Прикачена картинка


--------------------
Facebook is a bit like checking your underwear after a fart.
Most likely there's nothing new and if there is it's probably shit.
PMEmail PosterUsers Website
Top
dvader
Публикувано на: 27-04-2025, 15:22
Quote Post


Group Icon
Име: Валерий Тодоров
Група: VIP
Ранг: Почетен член

Мнения: 5407
Регистриран на: 12.07.05



QUOTE (SuN @ 27-04-2025, 11:47)
Лъжат те!

QUOTE
It is not recommended to use this function for a general try/catch mechanism.

В днешно време на никой не можеш да вярваш... icon_wink.gif


--------------------
I find your lack of faith disturbing
PM
Top
bvbfan
Публикувано на: 27-04-2025, 15:50
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 4169
Регистриран на: 08.12.13



QUOTE (Дон Реба @ 27-04-2025, 11:44)
QUOTE (dvader @ 27-04-2025, 11:30)

Аха... а ако го проверяваш с error code и да връщаш error code - това не е ли път към същият ад?

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

Предлагаш най-лошият подход, но нормално за процедурист като теб. Идеята в Rust е, че няма такова чудо като nullptr, няма грешки с кодове и безкрайни и непрекъснато повтарящи се switch/case при обработка на грешки. Затова има pattern-match и expected or error тип. Така се елиминират репортване на грешки с кодове, примитивно, неефективно, повтарящи се конструкции и обработването на изключения, което е много по-добро, защото "развива" стека и позволява да бъде обработена само веднъж, но "по-скъпа" от към ресурси, което рефлектира и към производителността. Така в Rust се ползват комбинатори, за да не е нужно да връщаш изпълнението на извикващия.

Това мнение е било редактирано от bvbfan на 27-04-2025, 15:50


--------------------
QUOTE (Bender @ 23-04-2015, 19:11)
Xamarin: ЛАПАЙ!
Ти: Добре...
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (8) « първа ... 3 4 [5] 6 7 ... последна » Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0