Size: a a a

2021 March 02

RB

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

А

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

RB

Roman Blog in rust_offtopic
выше было сказано
источник

ΑZ

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

ΑZ

Αλεχ Zhukovsky in rust_offtopic
если запаниковал кто-то кого ты вызывал ты об этом не узнаешь - приложение упало же
источник

А

Алексей in rust_offtopic
аборт - это аборт, полная остановка, никакого кода дальше не выполняется
источник

А

Алексей in rust_offtopic
какие-либо инварианты смысла не имеют уже
источник

ΑZ

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

ΑZ

Αλεχ Zhukovsky in rust_offtopic
важно что гарантируется языком и либами
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
остальное - брехня языком
источник

А

Алексей in rust_offtopic
если не аборт то компилятор вызовет нужные дропы
источник

А

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

RB

Roman Blog in rust_offtopic
зачем ты споришь не читая контекста? Я отвечаю на это "все либы что я юзаю паники воспринимают как анрекаверабл,"
источник

Z

Zaner in rust_offtopic
Roman Blog
fno-exceptions, кастомный rt и прочее
С этим ты по факту не можешь пользоваться даже std и пишешь на подмножестве языка, в расте - можешь
источник

RB

Roman Blog in rust_offtopic
Αλεχ Zhukovsky
значит
Нет, не значит. Тебе мало что гарантирует. Допустим, упомянутый выше ресайз веткора тебе не гарантируется, а значит ты считаешь, что ресайз веткора - брехня языком?
источник

RB

Roman Blog in rust_offtopic
Zaner
С этим ты по факту не можешь пользоваться даже std и пишешь на подмножестве языка, в расте - можешь
нет, не можешь. Всё тут же превращается в тыкву. И std ты можешь исключать, ты опять всё перепутал. Что же у вас так плохо со всем этим. std не используется не потому, почему ты там себе придумал. А потому, что нужно получить ошибку. Если её получать ненужно, то вся std работает
источник

RB

Roman Blog in rust_offtopic
т.е. в С++ исходят, при отключении исключения, что нужно отслеживать ошибки при ресайзе вектора. И мочь их обработать. В расте исходят из того, что ненужно. Это никак не связана с исключениями. Ты точно так же в С++ можешь использоваться той же логикой
источник

RB

Roman Blog in rust_offtopic
и кидать abort без возможности обработать ошибку
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Roman Blog
Нет, не значит. Тебе мало что гарантирует. Допустим, упомянутый выше ресайз веткора тебе не гарантируется, а значит ты считаешь, что ресайз веткора - брехня языком?
ресайз вектора гарантируется, а вот реаллокация - нет, да, поэтому рассчитывать на реаллок будет только дурачок
источник

А

Алексей in rust_offtopic
Roman Blog
зачем ты споришь не читая контекста? Я отвечаю на это "все либы что я юзаю паники воспринимают как анрекаверабл,"
Если либа делает что-то типа leak и from_raw и между этими операциями дёргает какой-то внешний код, который кинет панику, а потом восстановится, тогда будет утечка. Других случаев когда паника что-нибудь сломает я что-то придумать не могу
источник