chore: refactor `utils.get_current_student`
diff --git a/erpnext/education/utils.py b/erpnext/education/utils.py
index 641664c..5aaaa2f 100644
--- a/erpnext/education/utils.py
+++ b/erpnext/education/utils.py
@@ -66,9 +66,9 @@
 		return None
 	try:
 		student_id = frappe.get_all("Student", {"student_email_id": email}, ["name"])[0].name
-		return student_id
-	except IndexError:
-		return None
+		return frappe.get_doc("Student", student_id)
+	except (IndexError, frappe.DoesNotExistError):
+		frappe.throw(_("Student with email {0} does not exist.".format(email)))
 
 def check_super_access():
 	current_user = frappe.get_doc('User', frappe.session.user)
diff --git a/erpnext/www/lms.py b/erpnext/www/lms.py
index 9ccafa9..f71fc59 100644
--- a/erpnext/www/lms.py
+++ b/erpnext/www/lms.py
@@ -8,22 +8,14 @@
 	student = utils.get_current_student()
 	if student == None:
 		return None
-	try:
-		student = frappe.get_doc("Student", student)
-		return student.get_program_enrollments()
-	except:
-		return None
+	return student.get_program_enrollments()
 
 @frappe.whitelist()
 def get_all_course_enrollments():
 	student = utils.get_current_student()
 	if student == None:
 		return None
-	try:
-		student = frappe.get_doc("Student", student)
-		return student.get_all_course_enrollments()
-	except:
-		return None
+	return student.get_all_course_enrollments()
 
 # Vue Client Functions
 @frappe.whitelist(allow_guest=True)
@@ -151,9 +143,9 @@
 
 @frappe.whitelist()
 def enroll_in_program(program_name):
-	if(not utils.get_current_student()):
+	student = utils.get_current_student()
+	if not student:
 		utils.create_student_from_current_user()
-	student = frappe.get_doc("Student", utils.get_current_student())
 	program_enrollment = student.enroll_in_program(program_name)
 	return program_name
 
@@ -183,11 +175,11 @@
 		:param course_name:
 		:param program_name:
 	"""
-	if not utils.get_current_student():
+	student = utils.get_current_student()
+	if not student:
 		return {'flag':'Start Course' }
 	course_enrollment = utils.get_course_enrollment(course_name)
 	program_enrollment = utils.get_program_enrollment(program_name)
-	student = frappe.get_doc("Student", utils.get_current_student())
 	if not program_enrollment:
 		return None
 	if not course_enrollment:
@@ -210,14 +202,14 @@
 		:param course_name:
 	"""
 	topic = frappe.get_doc("Topic", topic_name)
-	if not utils.get_current_student():
+	student = utils.get_current_student()
+	if not student:
 		topic_content = topic.get_all_children()
 		if topic_content:
 			return {'flag':'Start Course', 'content_type': topic_content[0].content_type, 'content': topic_content[0].content}
 		else:
 			return None
 	course_enrollment = utils.get_course_enrollment(course_name)
-	student = frappe.get_doc("Student", utils.get_current_student())
 	progress = student.get_topic_progress(course_enrollment.name, topic)
 	if not progress:
 		return { 'flag':'Start Topic', 'content_type': None, 'content': None }
@@ -261,8 +253,7 @@
 @frappe.whitelist()
 def get_joining_date():
 	current_student = utils.get_current_student()
-	if(current_student):
-		student = frappe.get_doc("Student", current_student)
+	if current_student:
 		return student.joining_date
 	else:
 		return None
@@ -272,7 +263,7 @@
 	program = frappe.get_doc("Program", program_name)
 	program_enrollment = utils.get_program_enrollment(program_name)
 	quiz_meta = frappe._dict()
-	student = frappe.get_doc("Student", utils.get_current_student())
+	student = utils.get_current_student()
 	if not program_enrollment:
 		return None
 	else:
@@ -281,7 +272,6 @@
 			course_enrollment = utils.get_course_enrollment(course.course)
 			meta = course_enrollment.get_progress(student)
 			for progress_item in meta:
-				# if progress_item['content_type'] == "Quiz" and progress_item['is_complete'] == True:
 				if progress_item['content_type'] == "Quiz":
 					progress_item['course'] = course.course_name
 					progress_list.append(progress_item)