Not sure because I don't use Sharepoint,but looking at the docs you need to create the field "PercentComplete" before trying to set a value in it.
SPListItem itemUpdate = web.Lists["ListName"].Items[itemId];
itemUpdate.Fields.CreateNewField("PercentComplete", "PercentComplete");
itemUpdate["PercentComplete"] = .45; 
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splistitem.fields.aspx
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfieldcollection_methods.aspx  
Let's hope an expert on SharePoint could give you a better answer.....
As a side note: There is no way to ignore an exception. Exceptions are an 'exceptional' event. Something that you cannot expect, not something that you could prevent to happen with proper coding. Accessing an item that doesn't exist is a bad practice and you could easily avoid it.
If you wish you could setup a global exception handler that handles all the uncaught exception adding code like this to your main method
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException);
AppDomain.CurrentDomain.UnhandledException += 
         new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
And then prepare the following methods
private static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
{
    string msg = "Not recognized error:" + e.Exception.Message;
    if (e.Exception.InnerException != null)
    {
           msg = msg + "\r\nPrevious error:" + e.Exception.InnerException.Message;
    }
    msg = msg + "\r\nStackTrace:" + e.Exception.StackTrace;
    msg = msg + "\r\nDo you wish to continue with the application?";
    DialogResult dr = AskAQuestion(msg);
    .. add logging here ...
    if (dr == DialogResult.No) Application.Exit();
}    
private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
    Exception ex = e.ExceptionObject as Exception;
    if (ex != null)
    {
        string msg = "Not recognized error:" + e.Exception.Message;
        if (e.Exception.InnerException != null)
        {
               msg = msg + "\r\nPrevious error:" + e.Exception.InnerException.Message;
        }
        msg = msg + "\r\nStackTrace:" + e.Exception.StackTrace;
        .. add logging here ...
    }
}
     
    
SPListItem. That's where the exception is originating.NullReferenceException, but the message "Value does not fall within the expected range." suggests otherwise. Which is it?