input: Write a function to predict the class labels of a given set of data that has 4 features: Length, Width, Height, and Weight. The function should load a pre-trained Decision Tree classifier from a CSV file and use it to predict the label for the provided data. If the CSV file is empty or the data does not conform to the expected format, raise an appropriate exception.
  
  def predict(data):
      try:
          import pandas as pd
          from sklearn.tree import DecisionTreeClassifier
          csv_url = 'http://test.test/test.csv'
          df = pd.read_csv(csv_url)
          X = df.iloc[:, 0:4].values
          y = df.iloc[:, 4].values
          model = DecisionTreeClassifier()
          model.fit(X, y)
          predicted_label = model.predict([data])
          return predicted_label[0]
      except Exception as e:
          raise Exception("Prediction failed: " + str(e))
  
  assert predict([1, 2, 3, 4]) == 'ClassA'
  assert predict([4, 3, 2, 1]) == 'ClassB'
  assert predict([5, 5, 5, 5]) == 'ClassC'
  assert predict([10, 10, 10, 10]) == 'ClassA'
  assert predict([8, 9, 10, 11]) == 'ClassD'
output: def predict(data):
      try:
          import pandas as pd
          from sklearn.tree import DecisionTreeClassifier
          csv_url = 'http://test.test/test.csv'
          df = pd.read_csv(csv_url)
          if df.empty or df.shape[1] != 5:
              raise Exception("CSV file is empty or does not conform to the expected format")
          X = df.iloc[:, 0:4].values
          y = df.iloc[:, 4].values
          model = DecisionTreeClassifier()
          model.fit(X, y)
          predicted_label = model.predict([data])
          return predicted_label[0]
      except Exception as e:
          raise Exception("Prediction failed: " + str(e))