кажется, дошло
Это значит, что на каждый тип свой колбэк? И его передавать в обёртку с try catch
как параметр?
Да, на каждый способ создания. Если какие-то типы создаются похожим способом, то можно создать одну функцию.
Еще вместо колбеков можно ООП использовать. В паттернах это называют фабриками (factory).
Ну так бы сразу и сказали Я-то думал, что вы про универсальный метод говорите. Вот я и туплю, какой ещё там колбэк и зачем.