input: Write a function to evaluate a postfix expression and return the evaluated value. If the input expression is a valid postfix expression, the function should return the integer result. If the input expression is not valid, the function should handle the error appropriately and return an error message. The function should use a stack to process the expression.
  assert evaluate("2 3 + 4 5 * *") == 46
  assert evaluate("10 4 + 2 *") == 28
  assert evaluate("1 2 3 * +") == 7
  assert evaluate("5 4 / 7 *") == 8
  assert evaluate("3 0 /") == "Error: Division by zero"
output: def evaluate(expression):
      stack = []
      tokens = expression.split()
      
      for token in tokens:
          if token.isdigit():
              stack.append(int(token))
          else:
              if len(stack) < 2:
                  return "Error: Invalid expression"
              b = stack.pop()
              a = stack.pop()
              if token == '+':
                  stack.append(a + b)
              elif token == '-':
                  stack.append(a - b)
              elif token == '*':
                  stack.append(a * b)
              elif token == '/':
                  if b == 0:
                      return "Error: Division by zero"
                  stack.append(a // b)
              else:
                  return "Error: Invalid operator"
      
      if len(stack) == 1:
          return stack[0]
      else:
          return "Error: Invalid expression"