<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to bypass raise Error in if else statement in ArcGIS Pro Questions</title>
    <link>https://community.esri.com/t5/arcgis-pro-questions/how-to-bypass-raise-error-in-if-else-statement/m-p/1713858#M103929</link>
    <description>&lt;P&gt;Beyond Richard's questions, Python string comparisons are case sensitive.&amp;nbsp; I noticed your code block shows&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;if row[3] == "No Error"&lt;/LI-CODE&gt;&lt;P&gt;but your question states, "row[3] == "NO ERROR".&amp;nbsp; Also, extra space padding in the string can cause an issue.&lt;/P&gt;</description>
    <pubDate>Fri, 10 Jul 2026 12:28:34 GMT</pubDate>
    <dc:creator>JoshuaBixby</dc:creator>
    <dc:date>2026-07-10T12:28:34Z</dc:date>
    <item>
      <title>How to bypass raise Error in if else statement</title>
      <link>https://community.esri.com/t5/arcgis-pro-questions/how-to-bypass-raise-error-in-if-else-statement/m-p/1713702#M103919</link>
      <description>&lt;P&gt;Why does my arcpy code raise an error even though the if/else statement says to bypass it?&amp;nbsp; For example, why does the raise RouteError still happen when if row[3] == "NO ERROR" is true?&lt;/P&gt;&lt;LI-CODE lang="c"&gt;class RouteError(Exception):
    pass

import arcpy
import sys

arcpy.env.overwriteOutput = True


def CalcPavementArea_tool(in_FC, in_RouteIdx, in_Workspace, in_LRS, out_Poly_Area):
    try:
    
        # -------------------------------------------
        # Define workspace using input paramter value
        # -------------------------------------------
        arcpy.env.workspace = in_Workspace
                
                  
        my_RouteID_FromTo_Measures_Table = in_Workspace + "\\input_RouteId_FromTo_Measures"
        # ---------------------------------------------------------
        # Update table with user's RouteId,, From, and To Measures
        # ---------------------------------------------------------
        fields_inputRoute = ['RouteId', 'FromMeasure', 'ToMeasure']
        with arcpy.da.UpdateCursor(my_RouteID_FromTo_Measures_Table, fields_inputRoute) as cursor:
            for row in cursor:
                #Update RouteId, FromMeasure, ToMeasure values
                row[0] = in_RouteId
                row[1] = in_FromMeasure
                row[2] = in_ToMeasure
                cursor.updateRow(row)
            
        arcpy.AddMessage("Update to RouteId=" + in_RouteId + ", FromMeasure=" + in_FromMeasure + ", ToMeasure=" + in_ToMeasure + " input table completed successfully")
        
        # ---------------------------------------------------------
        # Make Route Event from LRS_County and User's input
        # ---------------------------------------------------------
        # Make Route Event Layer (Make Route Event Layer) -- from input RouteId, and From/To measure
        output_RouteId_FromToMeasures_Events = "input_RouteId_FromToMeasures Events"

        arcpy.lr.MakeRouteEventLayer(
            in_routes=in_LRS, 
            route_id_field="RouteId", 
            in_table=my_RouteID_FromTo_Measures_Table,
            in_event_properties="RouteId; LINE; FromMeasure; ToMeasure", 
            out_layer=output_RouteId_FromToMeasures_Events, 
            add_error_field="ERROR_FIELD", 
            add_angle_field="NO_ANGLE_FIELD", 
            angle_type="NORMAL", 
            complement_angle="ANGLE", 
            offset_direction="LEFT", 
            point_event_type="POINT")
        arcpy.AddMessage("Make Route Event Layer completed successfully")
        
              
        # ---------------------------------------------------------
        # Verify Route Results -- LOC_ERROR
        # ---------------------------------------------------------
        myEventFields = ["RouteId", "FromMeasure", "ToMeasure", "LOC_ERROR"]

        with arcpy.da.SearchCursor("input_RouteId_FromToMeasures Events", myEventFields) as srchCursor:
            for row in srchCursor:
                if row[3] == "No Error":
                    arcpy.AddMessage("RouteId=" + str(row[0]) + ": FromMeasure=" + str(row[1]) + " ToMeasure=" + str(row[2]) + " are valid.")
                else:
                    if row[3] == "Measure Extent Out Of Route Measure Range":
                        arcpy.AddWarning("Measure Extent Out Of Route Measure Range. RouteId=" + str(row[0]) + ": FromMeasure=" + str(row[1]) + " ToMeasure=" + str(row[2]))
                    else:
                        arcpy.AddError(row[3] + ". RouteId=" + str(row[0]) + ": FromMeasure=" + str(row[1]) + " ToMeasure=" + str(row[2]))
                        raise RouteError
        
        
        # ---------------------------------------------------------
        # Export the Route Event to a Feature Class
        # ---------------------------------------------------------
        arcpy.conversion.ExportFeatures(
            output_RouteId_FromToMeasures_Events, 
            out_features=in_Workspace + r"\RouteId_FromToMeasures_Events", 
            use_field_alias_as_name="NOT_USE_ALIAS", 
            field_mapping=None
        )
        arcpy.AddMessage(in_Workspace + r"\RouteId_FromToMeasures_Events" + " EXPORT completed successfully")     
    
        return
        
       
    except RouteError:
        arcpy.AddMessage("Script ended unsuccessfully")
    except arcpy.ExecuteError:
        arcpy.AddMessage(arcpy.GetMessages(2))
    except Exception as e:
        print("Other error:", e)
  

if __name__ == "__main__":

    ## -------------------------------------------------------
    ## Grab parameter values and pass to our tool
    ## -------------------------------------------------------

    in_FC = arcpy.GetParameterAsText(0) # -- feature class
    in_LRS = arcpy.GetParameterAsText(1) # -- LRS
    in_RouteIdx = arcpy.GetParameterAsText(2) # -- RouteId
    in_FromMeasure = arcpy.GetParameterAsText(3)
    in_ToMeasure = arcpy.GetParameterAsText(4)
    in_Workspace = arcpy.GetParameterAsText(5) # -- workspace
    out_Poly_Area = arcpy.GetParameterAsText(6) # -- output polygon 
    

      
    arcpy.AddMessage(in_RouteIdx)
    arcpy.AddMessage(in_FromMeasure)
    arcpy.AddMessage(in_ToMeasure)

    CalcPavementArea_tool(in_FC, in_RouteIdx, in_Workspace, in_LRS, out_Poly_Area)
    #arcpy.SetParameterAsText(2, "Result") # -- Output polygon with paved surface area
    
    &lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 09 Jul 2026 20:02:30 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-questions/how-to-bypass-raise-error-in-if-else-statement/m-p/1713702#M103919</guid>
      <dc:creator>LoriEmersonKDOT</dc:creator>
      <dc:date>2026-07-09T20:02:30Z</dc:date>
    </item>
    <item>
      <title>Re: How to bypass raise Error in if else statement</title>
      <link>https://community.esri.com/t5/arcgis-pro-questions/how-to-bypass-raise-error-in-if-else-statement/m-p/1713799#M103925</link>
      <description>&lt;P&gt;do you want the 'except' blocks to flow like that or, if there is an exception, do you want to show the appropriate message and then 'break' out of the try block? Along the lines of:&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&amp;nbsp;except&lt;/SPAN&gt;&lt;SPAN&gt; ZeroDivisionError:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; # Handle division by zero&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; print&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;"Error: Cannot divide by zero."&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp;return&lt;/SPAN&gt; &lt;SPAN class=""&gt;None&lt;/SPAN&gt; &lt;SPAN class=""&gt;# You could also raise an exception here&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Jul 2026 00:22:10 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-questions/how-to-bypass-raise-error-in-if-else-statement/m-p/1713799#M103925</guid>
      <dc:creator>RichardDaniels</dc:creator>
      <dc:date>2026-07-10T00:22:10Z</dc:date>
    </item>
    <item>
      <title>Re: How to bypass raise Error in if else statement</title>
      <link>https://community.esri.com/t5/arcgis-pro-questions/how-to-bypass-raise-error-in-if-else-statement/m-p/1713858#M103929</link>
      <description>&lt;P&gt;Beyond Richard's questions, Python string comparisons are case sensitive.&amp;nbsp; I noticed your code block shows&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;if row[3] == "No Error"&lt;/LI-CODE&gt;&lt;P&gt;but your question states, "row[3] == "NO ERROR".&amp;nbsp; Also, extra space padding in the string can cause an issue.&lt;/P&gt;</description>
      <pubDate>Fri, 10 Jul 2026 12:28:34 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-questions/how-to-bypass-raise-error-in-if-else-statement/m-p/1713858#M103929</guid>
      <dc:creator>JoshuaBixby</dc:creator>
      <dc:date>2026-07-10T12:28:34Z</dc:date>
    </item>
  </channel>
</rss>

