How to handle exceptions when they are used to calculate another variable?

exception handling
exception handling | java
exception handling in constructor and destructor in c++
java exception handling best practices
exception handling in python
c++ error handling without exceptions
exception handling in c++
5 keywords of exception handling in java

I have this dataframe

letter       amount
a            15
b            5
c            6
d            0
e            12

then i use this code to see how many times a letter occured

try:
  a = (df.loc['a'])
except:
  print('no a in df')
try:
  b = (df.loc['b'])
except:
  print('no b in df')
try:
  c = (df.loc['c'])
except:
  print('no c in df')
try:
  d = (df.loc['d'])
except:
  print('no d in df')
try:
  e = (df.loc['e'])
except:
  print('no e in df')

amountOfTotalLetters = a + b + c + d + e

which gives me name 'd' is not defined how do i make it so it doesn't use d to calculate amountOfTotalLetters?

I know the sum function works, but i also want to create another dataframe later in the code with:

data = np.array([ a, b, c, d, e])

You've got two possibilites. First is your approach with direct indexing. (I zipped it into a for loop to shrink the code.)

amountOfTotalLetters = 0
for lttr in ('a', 'b', 'c', 'd', 'e'):
    try:
        amountOfTotalLetters += df.loc[lttr]
    except KeyError:
        continue

The first solution has the advantage that you can catch the error specifically for each letter or define a general behaviour for an error, like amountOfTotalLetters -= 10 for example.

Second is to use the implemented sum feature of pandas:

amountOfTotalLetters = df.sum()

or if your dataframe has many columns but you only want the sum of one:

amountOfTotalLetters = df.amount.sum()

The second approach is easier to read, faster and can be used on many columns at the same time. If you don't want to treat errors in a special way, I recommend using the second solution.


Concerning what you appended to your question: There is nothing easier than making an array out of a pandas dataframe. Instead of explicit (and thus cumbersome and error-prone) data = np.array([ a, b, c, d, e]) you can easily do this:

data = df.values  # If "letter" is your index
# or if letter is also a column:
data = df.amount.values

Exception handling, – anomalous or exceptional conditions requiring special processing - during the execution of a program. @interceptwind In fact this is no real answer to the question. "please suggest me how to handle exceptions" - handle them not prevent them :P – Felix D. Nov 19 '15 at 9:56 @FeDe Answering to the X part of the XY problem is fine, and is arguably better than answering to the Y part.

amountOfTotalLetters = df.amount.sum() Don't know if you're going for this tho.

How and when (not) to use exceptions, ) blocks The code within the try clause will be executed statement by statement. If you write the code to handle a single exception, you can have a variable follow the name of the exception in the except statement. If you are trapping multiple exceptions, you can have a variable follow the tuple of the exception. This variable receives the value of the exception mostly containing the cause of the exception.

Set d = 0 in the exception block.

try:
  d = (df.loc['d'])
except:
  print('no d in df')
  d = 0

In fact, you should probably be doing this for each variable, in case your data frame changes.

Alternatively, you could initialize all the variables to 0 before you start checking for occurrances.

Exception Handling in Python, Java provides a powerful exception handling mechanism that allows the missing initialization of a variable which results in a NullPointerException or; the improper use of Java provides two different options to handle an exception. Free eBooks · Free Webinars · Videos · Ideas Portal · ROI Calculator  In our example with average speed calculator we are storing the result into another variable, so that main thread can retrieve it. This gives us the idea to store the exception in a separate variable as well, making it available to the main thread along with the result.

How do I stop a program when an exception is raised in Python , A catch block is a group of C++ statements that are used to handle a specific a global variable, and create another routine that polls the value of that variable at You can determine whether any exception has been thrown and is currently  Exception Handling in Java is a powerful mechanism that is used to handle the runtime errors, compile-time errors are not handled by exception handling in Java.If an exception occurs in your code (suppose in line 6), then the rest of the code is not executed.

Java Exception Handling: How to Specify and Handle Exceptions, How should I handle resources if my constructors may throw exceptions? We can either return an error code or set a non-local variable (e.g., errno ). Do not use exceptions as simply another way to return a value from a function. you need to catch the master exception class, then use if to determine whether it is one  I'm trying to make a simple calculator using scanner and inheritance too, after i insert two numbers and operator i found this Exception the Exception is : Exception in thread "main" java.util.

Exception Handling, Hence, neither it is a good practice to use exception handling for one inside another is executed (one with an infinite recursion), which is limited by the size of the stack. All your local variables and methods call associated data will be four main components of exception handling, as shown in this figure. Exceptions in the declaration section occur when you try to initialize a variable declared in that section in a way that raises an exception. The most common exception raised surely must be ORA-06502 or VALUE_ERROR, which occurs (to name just two scenarios) when you try to assign a string value that is too large for the variable and when you

Comments
  • you can just do df['amount'].sum()
  • also having the amount of each letter in a separate variable is very bad. You already have this info in the dataframe, or you can use a dictionary, so each letter is the key and the amount is the value {'a': 15, 'b':5, ...}
  • NEVER use a bare except clause, ALWAYS catch only the exact exception you're expecting.
  • Imho I do not recommend this solution. This is neither pythonic, nor is this short/readable or flexible. For example errors should never be caught with a bare except.