Las excepciones son para casos excepcionales.
Es una frase muy famosa en la programación, pero también es una muy peligrosa. Te contamos por qué.
Motivo 1: Lenguajes sin genéricos.
Si tu lenguaje de programación no tiene genéricos, como podría ser el caso de PHP, no puedes modelar correctamente clases como un Either o un Result.
Either o Result son 2 de las alternativas más famosas para modelar nuestros errores sin recurrir a las excepciones.
Sí que es verdad que en estos lenguajes, podrías llegar a crear esas clases, pero al no tener genéricos, no tendrías tipado de qué errores pueden haber o de qué devuelve si todo ha ido ok.
Se pueden añadir herramientas de análisis estático para ello, pero ya es hack sobre hack que hace el código más complicado de mantener.
En este tipo de lenguajes, lo más práctico es gestionar los errores con excepciones. Y todo está bien, no pasa nada por ello.
Motivo 2: Lenguajes sin un buen DSL para la gestión de errores.
Aquí entramos en unas zonas grises. TypeScript sería un ejemplo de ello.
Es un lenguaje que sí que tiene genéricos, pero no un buen DSL por defecto para gestionar Eithers o Results.
Esto hace que sí que los podamos modelar correctamente y utilizarlos bien, hasta que se complican los casos.
¿Qué pasa cuando quieres combinar diversos errores? ¿He de dejar de hacer validaciones en los constructores de mi clase porque estos no pueden devolver un valor?
Por suerte, para mitigar este tipo de problemas, hay librerías como fp-ts o Effect. Librerías que para usarlas nos hemos de acoplar 100% a ellas.
¿Nos compensa el cambio?
Aquí depende sobretodo de cómo quiera trabajar el equipo. Si no tenemos experiencia con ello no, no nos compensa, ya que nos va a quedar un código mucho más complicado para la nueva gente que entre.
Ante la duda, la gestión de errores con excepciones nos puede seguir funcionando 100%.
Entonces… ¿Cuándo sí tiene sentido la frase?
Tiene el 100% de sentido cuando estamos en un lenguaje donde estos tipos son algo común, como podría ser Rust, Scala o Kotlin + Arrow.
Estos lenguajes, con su sistema de tipos mucho más potente, ofrecen formas muy sencillas de gestionar los errores de una forma muy idiomática.
Allí sí que dejamos las excepciones para casos excepcionales.
Conclusión:
Por muy poderosas que sean a veces frases del mundo de la programación, nada es una verdad escrita en piedra.
Hay contextos donde puede aplicar perfectamente y en otros donde aplicarlo sería un desastre.
¡No te pierdas la miduConf!
👩💻 Conferencia de programación gratuita
🔥 Speakers TOP internacionales
🎁 +256 regalos para todos
...¡y muchas sorpresas más!
Apunta la fecha: 12 de SEPTIEMBRE
→ miduconf.com/ticket/Breims/…
🚨Ayer se confirmó que la caída de CrowdStrike fue un error HUMANO.
Lo voy a explicar en pocas palabras y muy sencillas.
El programa está escrito en C++, donde existen los llamados “punteros”.
Un puntero es solo una flechita que señala a una posición de la memoria del ordenador, que es como una fila de casas enorme. Y el puntero, es como un tío señalándola desde la acera.
Windows tiene la paciencia corta, y protege ciertas direcciones de esa memoria. Si ve a un tío delante de su casa (intentan acceder a sus direcciones de memoria protegidas) se lo carga instantáneamente.
Pues eso estaba haciendo Crowdstrike. Por un error de PROGRAMACIÓN se estaba intentando acceder a la posición de memoria 156.
Esto hacía que Windows mátase instantáneamente el proceso y metía al sistema operativo en un bucle sin fin.
Microsoft va a tener que ponerse las pilas con los drivers de terceros para que no les vuelva a pasar. Tienen parte de la responsabilidad de esta situación.
Y Crowdstrike, a agachar la cabeza y contratar buenos abogados.
Fin del misterio.
@Bancolombia Que está pasando con esa escalabilidad Bancolombia, como es que te saturas en fechas de pagos, delicado el asunto, revisen sus servicios y microservicos, validen estados criticos y evalúen que escalabilidad es la ideal ya que este problema es bastante recurrente :/
We’re thrilled to announce we’re partnering with @OpenAI to bring best in class technical knowledge and the world’s most popular LLM models for AI development together! This groundbreaking partnership with OpenAI will drive our mission to empower the world to develop technology
14K Followers 12K FollowingCompañía filial de @cesce_es. Líder en el suministro de Información Comercial, Financiera, Sectorial y de Marketing. Business by Data.
https://t.co/4CHw6PAvzb
411 Followers 733 FollowingSr Software Engineer building AI + CRM systems
• FastAPI, Next.js, SQL
• Working on AI SDR tools
• Building side projects in public
65K Followers 390 FollowingI'm creating character sheets for the inhabitants of a fantasy world. All AI illustrations were generated with Nijijourney💻+Clip studio✏️
19K Followers 473 FollowingHello, it's Ui. an unwavering artist with big dreams
|
The 'i' in the username is 9 times if you're wondering, for good luck!
2.2M Followers 623 FollowingOfficial X account for The Kobeissi Letter, an industry leading commentary on the global capital markets. Email us: [email protected]
418K Followers 185 FollowingBrowse and search faster and privately. Now over 120M users!
Support us: https://t.co/yFEtGCXExI
Build: https://t.co/JjscXOnw78
Get help: @BraveSupport
153K Followers 2 FollowingA programming language empowering everyone to build reliable and efficient software.
** This account is no longer active. Follow us on other platforms! **
1.2M Followers 159 FollowingWe're a community of millions of people who are building new skills and getting new jobs together. A 501(c)(3) public charity. Tweets by @abbeyrenn.
68K Followers 168 FollowingSoy el que hace los juegos de anime como DRAGON BALL, pero también DARK SOULS, LITTLE NIGHTMARES, TEKKEN y tantas otras cosas geniales que no caben aquí. 🐲💀👻
450K Followers 15 FollowingDOOM: The Dark Ages | Revelations is coming July 7 on XBOX Series X|S, PC & PS5. ESRB RATING: Mature for Blood and Gore and Intense Violence.
2.6M Followers 331 FollowingNews, updates, and community love from the developers of @DestinyTheGame and @MarathonTheGame. For status updates about the game, follow @BNGServerStatus.
1.5M Followers 251 FollowingTitles shown rated T-M. For more information, visit https://t.co/xwPCrUpOip. For general Blizzard support, please contact @BlizzardCS.
781K Followers 9 FollowingDOOM: The Dark Ages | Revelations is coming July 7 on XBOX Series X|S, PC & PS5. ESRB RATING: Mature for Blood and Gore and Intense Violence.
2.6M Followers 48 FollowingThe official handle for NVIDIA. Blog: https://t.co/JAn5eKOTBT Support: https://t.co/6ln5FVnA2o All our social media: https://t.co/Uc56dL57Dh
267K Followers 182 FollowingDisfruta de lo mejor de Samsung. Si tienes preguntas, te ayudamos en el #726. Política de protección de datos aquí: https://t.co/TjCwdZAjp1
1.1M Followers 334 FollowingThe Official ASUS ROG Account.
Join us on Discord https://t.co/5XXPrPYjEY
For support, please go to https://t.co/xzem2yeEHg
994K Followers 418 FollowingOfficial ASUS Twitter. Get the scoop on products, updates and contests.
For customer service/ technical inquiry: https://t.co/YGU5BBjvlH
692K Followers 126 FollowingThe nonprofit organization behind the Python programming language. For help with Python code: https://t.co/XDHPttz2Xv
On Mastodon: @[email protected]
28K Followers 7K FollowingWe're unlocking the power of data to help create a better tomorrow. Chat with us in our weekly #CreditChat : https://t.co/WDdPa8IS7Q 😀💬😀
70K Followers 981 FollowingThe everything app for work. Where your team, your agents, and your company's Brain get more done together.
Click the link to create your free workspace 👇
107K Followers 6K FollowingWe're on a mission to help unleash the potential of every team.
Maker of collaboration tools like @Jira, @Confluence, @Loom, @Trello, and more.
17K Followers 212 FollowingGitKraken’s DevEx platform orchestrates workflows between devs & AI to save time & boost productivity. Powering 40M+ devs at 100K orgs 🚀
157K Followers 23 FollowingThe Leading IDE for Pro Java and Kotlin Development, by @JetBrains
Tips: #IntelliJIDEATips
New Features: #NewInIntelliJIDEA
Our YT channel https://t.co/GuAlWUIi7Q
181K Followers 247 FollowingThis is the official feed for the Fedora Project, a global free software community sponsored by @RedHat. Find us on Mastodon: @[email protected]