Hi,
Please check whether the function GetAppliedLeaveBalance() returns any data back for LWP as suggested in the comments.
Also it is a better practice to check
arrchkleave
is not null and has some elements before using any value from it.
The below code makes sure arrchkleave has at-least one element and avoids the exception you are facing.
if(arrchkleave != null && arrchkleave.Count > 0)
{
leavebal = Convert.ToDouble(arrchkleave[0]);
}