problem with event delegate, NullReferenceException: Object reference not set to an instance of an object

public class EnemyDie : MonoBehaviour
{
private EnemyHealth enemyHealth;
void Start()
{
enemyHealth = GetComponent();
}
void OnEnable()
{
enemyHealth.OnZeroHealth += OnDeath;
}
void OnDisable()
{
enemyHealth.OnZeroHealth -= OnDeath;
}
private void OnDeath()
{
gameObject.SetActive(false);
}

}

and here is my enemyHealth class

public class EnemyHealth : MonoBehaviour {

private Enemy enemy;
private float initialHp;
private float currentHp;

public delegate void UpdateHp();
public event UpdateHp OnZeroHealth;

void Start()
{
    enemy = GetComponent<Enemy>();
    initialHp = enemy.Hp;
    currentHp = initialHp;
}
private void AttackHp(float attackPower)
{
    currentHp -= attackPower;
    CheckHp();
}
private void CheckHp()
{
    if (currentHp<=0)
    {
        if (OnZeroHealth!=null)
        {
            OnZeroHealth();
        }
    }
}

}

i get the error on this enemyHealth.OnZeroHealth += OnDeath;
please help me to resolve my issue.

As Start Method is called after OnEnable and you are trying to use enemyHealth object which has not been assigned thats why it is giving Null Exception .

Try

enemyHealth = GetComponent();
in AWAKE() instead of START()

For Reference of Execution Order :-