Size: a a a

2021 March 02

RB

Roman Blog in rust_offtopic
в общем случае паника должна быть abort, в противном случае это уже предполагает обработку, потому как нету смысла делать исключения и делать их по умолчанию, когда они предполагают свою поимку и не имеют смысла к существованию вне этого
источник

Z

Zaner in rust_offtopic
Roman Blog
в общем случае паника должна быть abort, в противном случае это уже предполагает обработку, потому как нету смысла делать исключения и делать их по умолчанию, когда они предполагают свою поимку и не имеют смысла к существованию вне этого
Так аборт и можно включить, и 99% библиотек пишутся с осознанием этого
источник

А

Алексей in rust_offtopic
насколько я понимаю, в расте лучше рассматривать паники именно как аборты, а не как обычные исключения
источник

А

Алексей in rust_offtopic
как это делается в го например
источник

А

Алексей in rust_offtopic
тем более что флагом может задаваться что паника - это аборт
источник

RB

Roman Blog in rust_offtopic
Zaner
Так аборт и можно включить, и 99% библиотек пишутся с осознанием этого
и что? Это можно включить и в С++. По поводу "пишутся" - нет. Это ни из чего не следует. 99% библиотек пишутся попросту игнорируя исключения. Если бы они исходили из того, что panic=abort, то они бы а) не пропускали исключения через себя. Потому как это не имеет смысла и противоречит их желаниям, желанием декларируемым тобою
источник

А

Алексей in rust_offtopic
"не пропускать исключения через себя" - это как?
источник

RB

Roman Blog in rust_offtopic
б) требовали этого флага. Ну и в принципе никакого смысла в наличие исключений не было бы. А раз они есть, то они имеют смысл и имеют назначение. И существуют по нескольким причинам. Во-первых крестовое raii не может работать без исключений. Во-вторых это скрывает ошибки для непосвященных. Т.е. мы не можем забрать эту обработку, потому как она нужна. Иначе язык не язык. А раст притендует на лавры системщины и лоулевел какого-то. Поэтому и создан альтернативный канал для ошибок, и именно поэтому неофиты о нём ничего не знают и никак с ним не взаимодействуют
источник

Z

Zaner in rust_offtopic
Roman Blog
и что? Это можно включить и в С++. По поводу "пишутся" - нет. Это ни из чего не следует. 99% библиотек пишутся попросту игнорируя исключения. Если бы они исходили из того, что panic=abort, то они бы а) не пропускали исключения через себя. Потому как это не имеет смысла и противоречит их желаниям, желанием декларируемым тобою
Включить как?
источник

RB

Roman Blog in rust_offtopic
Алексей
"не пропускать исключения через себя" - это как?
ну вот так. Ловить паники. Оборачивать все свои вызовы вон в подобий той херни, которую я линковал. И если там будет err - кидать аборт
источник

А

Алексей in rust_offtopic
Roman Blog
ну вот так. Ловить паники. Оборачивать все свои вызовы вон в подобий той херни, которую я линковал. И если там будет err - кидать аборт
но зачем?
источник

RB

Roman Blog in rust_offtopic
Алексей
но зачем?
потому что это декларируется. Прочитай выше. Они считают, что подобное поведение для их функции недостижимо, а значит оно нарушает базовый инваринт. Либо этого инварианта нет и весь спор не имеет смысла
источник

RB

Roman Blog in rust_offtopic
Zaner
Включить как?
fno-exceptions, кастомный rt и прочее
источник

RB

Roman Blog in rust_offtopic
ты можешь написать аллокацию исключения и сделать в ней abort, даже на уровне под языком
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Roman Blog
ну вот так. Ловить паники. Оборачивать все свои вызовы вон в подобий той херни, которую я линковал. И если там будет err - кидать аборт
ловить то что нельзя поймать? Найс придумал
источник

RB

Roman Blog in rust_offtopic
Αλεχ Zhukovsky
ловить то что нельзя поймать? Найс придумал
Если бы оно не ловило - оно бы не существовало.
источник

А

Алексей in rust_offtopic
Roman Blog
потому что это декларируется. Прочитай выше. Они считают, что подобное поведение для их функции недостижимо, а значит оно нарушает базовый инваринт. Либо этого инварианта нет и весь спор не имеет смысла
коду вообще говоря пофиг пройдёт ли через него паника или нет
источник

А

Алексей in rust_offtopic
поэтому и ловить ему ничего не надо
источник

RB

Roman Blog in rust_offtopic
а то, что где-то там написано "не гарантирует" - это не означает "не ловит".
источник

D

Dima in rust_offtopic
Алексей
коду вообще говоря пофиг пройдёт ли через него паника или нет
не всегда
источник