diff --git a/gql_query_builder/__init__.py b/gql_query_builder/__init__.py
index ef22090..c7f6181 100644
--- a/gql_query_builder/__init__.py
+++ b/gql_query_builder/__init__.py
@@ -4,6 +4,10 @@
 from typing import Dict, List, Union
 
 
+class GqlQueryException(Exception):
+    pass
+
+
 class GqlQuery():
     def __init__(self) -> None:
         self.object: str = ''
@@ -16,6 +20,8 @@ def remove_duplicate_spaces(self, query: str) -> str:
         return " ".join(query.split())
 
     def fields(self, fields: List, name: str = '', condition_expression: str = ''):
+        if not fields:
+            raise GqlQueryException('fields cannot be empty or null')
         query = '{ ' + " ".join(fields) + ' }'
         if name != '':
             if condition_expression != '':
diff --git a/tests/test.py b/tests/test.py
index c34990e..5b563c9 100644
--- a/tests/test.py
+++ b/tests/test.py
@@ -1,14 +1,18 @@
 from unittest import TestCase
-from gql_query_builder import GqlQuery
+from gql_query_builder import GqlQuery, GqlQueryException
 
 
 class TestGqlQuery(TestCase):
+    def test_query_empty_fields(self):
+        with self.assertRaises(GqlQueryException):
+            GqlQuery().fields([]).query('hero').generate()
+
     def test_query_a_single_field(self):
         expected = 'query { hero { name } }'
         actual = GqlQuery().fields(['name']).query('hero').operation().generate()
         self.assertEqual(expected, actual)
 
-    def test_query_neting_fields(self):
+    def test_query_nesting_fields(self):
         expected = 'query { hero { name friends { name } } }'
         field_friends = GqlQuery().fields(['name'], name='friends').generate()
         actual = GqlQuery().fields(['name', field_friends]).query('hero').operation('query').generate()