Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
try except problem
#1
try:
    materialradius=float(entry_materialR.get())
    r=float(entry_poreradius.get())
    l=float(entry_porelength.get())
    pdensity=float(entry_poredensity.get())

    order=int(entry_order.get())
    kappa=float(entry_solutionR.get())
    R=float(entry_R.get())
    R_ct=float(entry_Rct.get())
    jex=float(entry_jex.get())
    R_s=float(entry_Rs.get())
    Qc=float(entry_Q.get())
    alpha=float(entry_alpha.get())

    upperU=float(entry_upperlimit.get())
    lowerU=float(entry_lowerlimit.get())
    repeat=int(entry_repeat.get())
    scanrate=float(entry_scanrate.get())
    f_min=0.001*float(entry_fmin.get())
    f_max=1000*float(entry_fmax.get())
 except ValueError:
    pass
Q:How can I do the rest of the try section if ValueError happens in the middle?

Thank you!!!
Reply
#2
You could use a function
def getnum(entry, typ, zoom=1, default=None):
    try:
        return typ(entry.get()) * zoom
    except ValueError:
        return default

upperU = getnum(entry_upperlimit, float)
lowerU = getnum(entry_lowerlimit, float)
repeat = getnum(entry_repeat, int)
scanrate = getnum(entry_scanrate, float)
f_min = getnum(entry_fmin, float, 0.001)
f_max = getnum(entry_fmax, float, 1000)
This would give silently a value of None to the invalid entries.
Reply


Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020