Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 101709
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T00:49:24+00:00 2026-05-11T00:49:24+00:00

I was recently teaching myself Python and discovered the LBYL/EAFP idioms with regards to

  • 0

I was recently teaching myself Python and discovered the LBYL/EAFP idioms with regards to error checking before code execution. In Python, it seems the accepted style is EAFP, and it seems to work well with the language.

LBYL (Look Before You Leap):

def safe_divide_1(x, y):     if y == 0:         print 'Divide-by-0 attempt detected'         return None     else:         return x/y 

EAFP (it’s Easier to Ask Forgiveness than Permission):

def safe_divide_2(x, y):     try:         return x/y     except ZeroDivisionError:           print 'Divide-by-0 attempt detected'         return None 

My question is this: I had never even heard of using EAFP as the primary data validation construct, coming from a Java and C++ background. Is EAFP something that is wise to use in Java? Or is there too much overhead from exceptions? I know that there is only overhead when an exception is actually thrown, so I’m unsure as to why the simpler method of EAFP is not used. Is it just preference?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-11T00:49:25+00:00Added an answer on May 11, 2026 at 12:49 am

    Personally, and I think this is backed up by convention, EAFP is never a good way to go. You can look at it as an equivalent to the following:

    if (o != null)     o.doSomething(); else     // handle 

    as opposed to:

    try {     o.doSomething() } catch (NullPointerException npe) {      // handle } 

    Moreover, consider the following:

    if (a != null)     if (b != null)         if (c != null)             a.getB().getC().doSomething();         else             // handle c null     else         // handle b null else     // handle a null 

    This may look a lot less elegant (and yes this is a crude example – bear with me), but it gives you much greater granularity in handling the error, as opposed to wrapping it all in a try-catch to get that NullPointerException, and then try to figure out where and why you got it.

    The way I see it EAFP should never be used, except for rare situations. Also, since you raised the issue: yes, the try-catch block does incur some overhead even if the exception is not thrown.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 152k
  • Answers 152k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer <link runat="server" id="defaultCss" rel="stylesheet" type="text/css"/> and on your code behind… May 12, 2026 at 10:11 am
  • Editorial Team
    Editorial Team added an answer Here is an example with a logo that I've used… May 12, 2026 at 10:11 am
  • Editorial Team
    Editorial Team added an answer 20% as a decimal is equal to 0.2. Just divide… May 12, 2026 at 10:11 am

Related Questions

I'm teaching myself VB.Net. Here is a problem I have recently come across. Say
A phrase that I've noticed recently is the concept of point free style... First,
I was recently tasked with coming up with an offsite backup strategy. We have
I was recently working on an application that sent and received messages over Ethernet

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.