Size: a a a

2021 March 02

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Roman Blog
ну как не как. Ты либо запрещаешь, либо не запрещаешь. Либо в принципе об этом не думаешь. Третьего варианта нет. Я утвержадю, что в 99% случаев это "не думаешь", а в 1% случаев "не запрещаешь"
Тын е запрещаешь и не запрещаешь, ты ничего не делаешь потому что механизма паник для тебя не существует. Он прозрчный, их нет.

За все паники отвечат топлевел приложение, для остальных это прозрачная фигня которую не надо перехватывать потому что не надо про них думать. Наоборот, Если бы либы их хватали то они бы рассчитывали на определенное поведение паник (что их можно поймать), и это были бы исключения
источник

IN

Irek Nigmatullin in rust_offtopic
Αλεχ Zhukovsky
ну я говорил про простой случай когда посмотрели на контент-лентгш и либо в память пишем либо на диск.

если есть стрим неизвестной длины то все усложняется, уверен что такое нигде не реализовано, хотя могу ошибатсья
Почему? Ты буферизируешь в память до определенного размера, далее при превышении сливаешь текущий буфер на фс и уже пишешь в него.Asp.net Core так работает
источник

RB

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

ΑZ

Αλεχ Zhukovsky in rust_offtopic
короч, тлдр: паники от исключений отличаются тем, что исключения задизайнены чтобы их ловили в катчах. Паники задизайнены чтобы их никто особо не ловил.

Дальше идет философский разговор про "а что такое ожидаемая ошибка"
источник

D

Dima in rust_offtopic
Αλεχ Zhukovsky
Тын е запрещаешь и не запрещаешь, ты ничего не делаешь потому что механизма паник для тебя не существует. Он прозрчный, их нет.

За все паники отвечат топлевел приложение, для остальных это прозрачная фигня которую не надо перехватывать потому что не надо про них думать. Наоборот, Если бы либы их хватали то они бы рассчитывали на определенное поведение паник (что их можно поймать), и это были бы исключения
да надо про них думать, еклм, это если ты safe код пишешь тогда не надо
источник

IN

Irek Nigmatullin in rust_offtopic
Αλεχ Zhukovsky
короч, тлдр: паники от исключений отличаются тем, что исключения задизайнены чтобы их ловили в катчах. Паники задизайнены чтобы их никто особо не ловил.

Дальше идет философский разговор про "а что такое ожидаемая ошибка"
Не все исключено ловятся. Например outofmemory, stackoverflow
источник

RB

Roman Blog in rust_offtopic
Αλεχ Zhukovsky
короч, тлдр: паники от исключений отличаются тем, что исключения задизайнены чтобы их ловили в катчах. Паники задизайнены чтобы их никто особо не ловил.

Дальше идет философский разговор про "а что такое ожидаемая ошибка"
Нет, паники задизайнины для того, чтобы их ловили. А то, что там поверх этого выродилось что-то - это ничего не значит. Просто хайлевел код на расте - это не то, что пишут на С++
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Irek Nigmatullin
Почему? Ты буферизируешь в память до определенного размера, далее при превышении сливаешь текущий буфер на фс и уже пишешь в него.Asp.net Core так работает
асп.нет много чего умеет, чего в расте нет. Все ж фреймфорк майросфот уже 10+ лет пишет. И переписывает.

Возможно на MMF что-то изобразить можно, хз
источник

А

Алексей in rust_offtopic
Roman Blog
Нет, паники задизайнины для того, чтобы их ловили. А то, что там поверх этого выродилось что-то - это ничего не значит. Просто хайлевел код на расте - это не то, что пишут на С++
Нет, паники задизайнины для того, чтобы их ловили.
нет
источник

ΑZ

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

RB

Roman Blog in rust_offtopic
Αλεχ Zhukovsky
откуда инфа?
Из наблюдаемой реальности. Если бы этого не требовалось, то они бы не были исключениями. Всё просто
источник

RB

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

А

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

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Roman Blog
Из наблюдаемой реальности. Если бы этого не требовалось, то они бы не были исключениями. Всё просто
а в чем проявляется то что они сключения? Что есть panic=unwind?
источник

RB

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

А

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

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Roman Blog
это требуется почти всегда в реальном лоулевел код. А то, что большинство кода на расте клало на всё это - это мало что значит. И да, "редко" уже достаточно.  Это уже ознает "созданы для ловли"
ножницы созданы чтобы закручивать гайки
источник

RB

Roman Blog in rust_offtopic
Αλεχ Zhukovsky
а в чем проявляется то что они сключения? Что есть panic=unwind?
реализацией. В llvm есть крестовые исключения. Вот весь код, который генерируется - генерируется именно и сходя из их поимки и обработки. Ну и кидаются они тем же рантаймом.
источник

RB

Roman Blog in rust_offtopic
этот код генерируется явно. Т.е. растфронт его специально генерирует. Значит язык предполагает обработку и на неё завязан
источник

А

Алексей in rust_offtopic
Roman Blog
Ну какие ещё есть варианты? Запрет противоречит наблюдаемой реальности, потому как он предполагает запрет, чего мы не наблюдаем
Ну ты вот на C++ пишешь. Там обычно далеко не два варианта развития событий в тех случаях когда написан некорректный код.
источник