more efficient parsing of optional parameters (avoid unneeded throws)