Denis
и дальше извлечь какую-то информацию, например, с помощью Typeable
может пора начать предоставлять услуги контрактного терморектального криптоанализа?
Anonymous
последнее нужно против нехороших авторов, которые не документируют список исплючений
Просто уже сталкивался с этим. А что значит "распаковать" SomeException?
Alexander
\(SomeException e) ->
Anonymous
А)
Alexander
проматчить конструктор - получишь доступ к объекту внутри со словарями Typeable, Show
Alexander
и Exception
Alexander
там выше я статью сбросил
Anonymous
Ок, прям сейчас и почитаю ее. Спасибо!!
Alexander
там вот все-все это есть
Anonymous
:-)
Alexander
и даже немного лишнего
Λrtem
Снова я со своей проблемой. Попытался написать тип того, что я хочу: convertException :: ( MonadError e1 m1 , MonadError e2 m2 ) => (e1 -> e2) -> m1 a -> m2 a Это вообще реализуемо?
Alexander
нет, если нету MMorph m1 m2
Alexander
https://hackage.haskell.org/package/mmorph-1.1.0/docs/Control-Monad-Morph.html
Alexander
иначе у тебя нету средств "запустить" m1 внутри m2
Alexander
т.к. ты вообще ничего о нем не знаешь
Alexander
если есть MMorph или forall a . m1 a -> m2 a то можно
Alexander
тогда наверное даже e1 -> e2 не нужно будет, оно будет внутри этой функции
Alexander
ну или какой-нить MonadTrans между m1 m2
Alexander
т.е. чтобы запустить контекст m тебе нужно знать его структуру, обычно это caller делает
Alexander
а тут ты про m1 ничего не знаешь
Alexander
@artemohanjanyan в чем проблема понятна? и если не понятно, то каким языком лучше объяснить?
Λrtem
Проблема понятна, как лучше решить всё ещё не придумал.
Alexander
какие-то конкретные m1 и m2 у тебя есть?
Denis
https://twitter.com/rufuse/status/934018611051728896 в твиттер пинганите, если интересно
Λrtem
какие-то конкретные m1 и m2 у тебя есть?
Ну, я знаю, что в итоге там будут комбинации стандартных State, Except, IO
Denis
Проблема понятна, как лучше решить всё ещё не придумал.
m1 от m2 чем отличаются кроме типа в констрейнте MonadError?
Alexander
т.е. ты сейчас грубо говоря хочешь convertException bla (Нёх f :: Нёх a) :: Хрум a
Alexander
причем про Нёх и Хрум метод знает что они могут делать throw и catch
Λrtem
Я хочу не конкретно это, а вообще какой-нибудь способ работать с исключениями
Denis
Способов работы с исключениями - вагон и маленькая тележка. Можно MonadThrow юзать, можно в MonadError таскать open-union, можно что-то еще делать. Я до сих пор не понял что вы точно хотите сделать.
Denis
Я хочу не конкретно это, а вообще какой-нибудь способ работать с исключениями
Выше как минимум три предложили. Тут либо мы задачу уточняем, либо хз.
Aragaer
если целый день, то не знаю, как это можно было бы совместить с работой 8(
Aragaer
а так я всегда рад прийти послушать что-нибудь интересное
Denis
целый день я ёжика рожу
Alexander
ёжики considered harmful
Anatolii
когда вы ... то где-то Денис родит еще одного ежика
Anatolii
как алтернатива котенкам сноймана:)
Denis
не, Денис категорически против рождения ёжиков
Anatolii
надо стартовать VHUG !
Alexander
V?
Alexander
и свинкам бартоша
Anatolii
virtual
Alexander
а блокчейнн саппорт будет?
Anatolii
у джавистов вроде хорошо получилось
Alexander
иначе не взлетит
Anatolii
https://virtualjug.com/
Anatolii
ну @catamorphism консалтит же по блокчейну - запилит что-то
Alexander
> None of them runs tests in isolated DB txns out-of-the-box, which is a very common use-case for webapps. хмхмхм, чего-то я не понимаю в тестировании
Alexander
почему тест фреймворк что-то делать тут должен, а нужные ручки везде есть
Anatolii
я этот момент тоже не понял
Anatolii
это надо саппорт всех баз данных в каждом тест фрэймворке?
Denis
virtualjugs
Denis
какое-то vr порно, не иначе
Alexander
да чушь какая-то
Alexander
они там много чего странного пишут, хотя и толковое тоже
Alexander
не знаю, у нас всегда вся изоляция в рамках CI настраивалась
Alexander
как нужно
Alexander
новые базы, новые контейнеры, новые кластеры
Alexander
хотеть от тестового фреймворка запилить нам новый кластер для тестов на Google Cloud - это странно
Denis
у нас обычно миграции + сиды разворачиваются на CI
Alexander
прогнать тесты, слить данные и прибить
Alexander
вот да
Denis
на каждый билд, разумеется
Denis
мне начинает казаться, что “фреймворк" это что-то ругательное
Alexander
+
Anatolii
в джава мире менял в тестах базу на какую-то In-memory
Anatolii
ну там хибернейты всякие
Anatolii
им все равно в какую базу писать
Anatolii
подход так себе конечно
Alexander
а потом на реальной базе что-нить вылезет
Anatolii
а об этом никто не думает
Alexander
у нас то тоже есть возможность пускать тесты хоть на локалхосте
Anatolii
зачем?:)
Alexander
которые потом в облаке работать будут
Alexander
но там разные codepath
Alexander
поэтому даже пройденные локальные методы не отменят кластерные тесты
Alexander
с базами та же фигня начиная с какого-то уровня сложности
Denis
а потом на реальной базе что-нить вылезет
всегда так, впрочем, даже если тестишь, то тоже вылезает