def METHOD_NAME(error_message, error_type=None, keep_quiet=None):
	"""Decorate any function to throw error incase of missing output.
	TODO: Remove keep_quiet flag after testing and fixing sendmail flow.
	:param error_message: error message to raise
	:param error_type: type of error to raise
	:param keep_quiet: control error raising with external factor.
	:type error_message: str
	:type error_type: Exception Class
	:type keep_quiet: function
	>>> @raise_error_on_no_output("Ingradients missing")
	... def get_indradients(_raise_error=1): return
	...
	>>> get_ingradients()
	`Exception Name`: Ingradients missing
	"""
	def decorator_raise_error_on_no_output(func):
		@functools.wraps(func)
		def wrapper_raise_error_on_no_output(*args, **kwargs):
			response = func(*args, **kwargs)
			if callable(keep_quiet) and keep_quiet():
				return response
			default_kwargs = get_default_args(func)
			default_raise_error = default_kwargs.get("_raise_error")
			raise_error = kwargs.get("_raise_error") if "_raise_error" in kwargs else default_raise_error
			if (not response) and raise_error:
				frappe.throw(error_message, error_type or Exception)
			return response
		return wrapper_raise_error_on_no_output
	return decorator_raise_error_on_no_output